diff --git a/CHANGELOG.md b/CHANGELOG.md index f41efaf10..36c40f6e8 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,3 +1,68 @@ +vcpkg (0.0.107) +-------------- + * Add ports: + - azmq 1.0.2 + - azure-c-shared-utility 1.0.0-pre-release-1.0.9 + - azure-iot-sdk-c 1.0.0-pre-release-1.0.9 + - azure-uamqp-c 1.0.0-pre-release-1.0.9 + - azure-uhttp-c 2018-02-09 + - azure-umqtt-c 1.0.0-pre-release-1.0.9 + - bitserializer 0.7 + - caf 0.15.7 + - fmem c-libs-2ccee3d2fb + - gherkin-c c-libs-e63e83104b + - librsync 2.0.2 + - libuuid 1.0.3 + - mpark-variant 1.3.0 + - nanomsg 1.1.2 + - nvml 1.3-0 + - nvtt 2.1.0 + - openvpn3 2018-03-21 + - parson 2018-03-23 + - plplot 5.13.0-1 + - sqlite-orm 1.1 + - tap-windows6 9.21.2-0e30f5c + * Update ports: + - abseil 2018-03-17 -> 2018-03-23 + - alembic 1.7.6 -> 1.7.7 + - asio 1.12.0 -> 1.12.0-1 + - aubio 0.4.6-1 -> 0.4.6-2 + - aws-sdk-cpp 1.3.58 -> 1.4.21 + - catch2 2.2.1 -> 2.2.1-1 + - ccfits 2.5-1 -> 2.5-2 + - ceres 1.13.0-4 -> 1.14.0-1 + - cfitsio 3.410-1 -> 3.410-2 + - clara 2018-03-11 -> 2018-03-23 + - cpprestsdk 2.10.2 -> 2.10.2-1 + - discord-rpc 3.0.0 -> 3.1.0 + - dlib 19.9-1 -> 19.10 + - eastl 3.07.02 -> 3.08.00 + - exiv2 2018-03-17 -> 2018-03-23 + - ffmpeg 3.3.3-4 -> 3.3.3-5 + - gdcm2 2.8.4 -> 2.8.5 + - harfbuzz 1.7.6 -> 1.7.6-1 + - hpx 1.0.0-8 -> 1.1.0-1 + - lcm 1.3.95 -> 1.3.95-1 + - libpq 9.6.1-1 -> 9.6.1-4 + - libvpx 1.6.1-1 -> 1.6.1-2 + - mpg123 1.25.8-2 -> 1.25.8-4 + - nuklear 2018-03-17 -> 2018-03-23 + - openssl 1.0.2n-2 -> 1.0.2n-3 + - paho-mqtt 1.2.0-2 -> 1.2.0-3 + - plog 1.1.3 -> 1.1.4 + - qt5-quickcontrols 5.9.2-0 -> 5.9.2-1 + - qt5-quickcontrols2 5.9.2-0 -> 5.9.2-1 + - sciter 4.1.3 -> 4.1.4 + - shapelib 1.4.1 -> 1.4.1-1 + - signalrclient 1.0.0-beta1-2 -> 1.0.0-beta1-3 + - soundtouch 2.0.0 -> 2.0.0-1 + - thrift 2018-03-17 -> 2018-03-23 + - unicorn 2018-03-13 -> 2018-03-20 + - zeromq 2018-03-17 -> 2018-03-23 + +-- vcpkg team TUE, 27 Mar 2018 22:00:00 -0800 + + vcpkg (0.0.106) -------------- * Add ports: diff --git a/ports/abseil/CONTROL b/ports/abseil/CONTROL index b337b7262..a07f78c76 100644 --- a/ports/abseil/CONTROL +++ b/ports/abseil/CONTROL @@ -1,5 +1,5 @@ Source: abseil -Version: 2018-03-20 +Version: 2018-03-29 Description: an open-source collection designed to augment the C++ standard library. Abseil is an open-source collection of C++ library code designed to augment the C++ standard library. The Abseil library code is collected from Google's own C++ code base, has been extensively tested and used in production, and is the same code we depend on in our daily coding lives. In some cases, Abseil provides pieces missing from the C++ standard; in others, Abseil provides alternatives to the standard for special needs we've found through usage in the Google code base. We denote those cases clearly within the library code we provide you. diff --git a/ports/abseil/portfile.cmake b/ports/abseil/portfile.cmake index 7f8f28798..bd1d799a2 100644 --- a/ports/abseil/portfile.cmake +++ b/ports/abseil/portfile.cmake @@ -7,8 +7,8 @@ endif() vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO abseil/abseil-cpp - REF 506fb4b56a339314fde23802bd749dbc3b3c1c79 - SHA512 a67d51afcf4446d2c5f27258174dd012e4c15ee1f69eb074770d4f5af335e661b1cafa6b46f6b61b9f7ff0379e7822a03c6d55096dc78a13e554688a8872ebf8 + REF d9b47d7888b39cd113bacacb9edd5023a71cbb3a + SHA512 d5aac7bbe7cdb1419f19eff80487a1d8fa03cde82db760bf9fab464a62ae66251c62f69ff13940db41af1bb287ea9680782773bf1cb19c15d489f711b390d734 HEAD_REF master ) diff --git a/ports/alembic/CONTROL b/ports/alembic/CONTROL index a1c8f7b4b..4e24aab9b 100644 --- a/ports/alembic/CONTROL +++ b/ports/alembic/CONTROL @@ -1,4 +1,4 @@ Source: alembic -Version: 1.7.6 +Version: 1.7.7 Build-Depends: ilmbase, hdf5 Description: Alembic is an open framework for storing and sharing scene data that includes a C++ library, a file format, and client plugins and applications. http://alembic.io/ diff --git a/ports/alembic/portfile.cmake b/ports/alembic/portfile.cmake index 8bc4d98ec..a44771ab2 100644 --- a/ports/alembic/portfile.cmake +++ b/ports/alembic/portfile.cmake @@ -8,8 +8,8 @@ endif() vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO alembic/alembic - REF 1.7.6 - SHA512 d77aab41cec66b0565b20ec54604754ed6ef83c97d6d27e161b1cdc28af96d624db438cf70d449166c07b8f9f281f14aeb29f9de91ccc06fb6d2934e4c46ef3a + REF 1.7.7 + SHA512 0ebcf6b9304e84bc60f1c146d0b5e5c5b1de43974ec0725293c444b48b22640945f5883eb9afd46c1ac9f0c260d6f22ff29b4866d6525c416339877be984b149 HEAD_REF master ) diff --git a/ports/aubio/CONTROL b/ports/aubio/CONTROL index 945157c7e..6f5daa30a 100644 --- a/ports/aubio/CONTROL +++ b/ports/aubio/CONTROL @@ -1,4 +1,4 @@ Source: aubio -Version: 0.4.6-1 +Version: 0.4.6-2 Description: Aubio is a tool designed for the extraction of annotations from audio signals. Its features include segmenting a sound file before each of its attacks, performing pitch detection, tapping the beat and producing midi streams from live audio. -Build-Depends: ffmpeg, libsndfile, libogg, libflac, libvorbis +Build-Depends: ffmpeg, libsndfile, libogg, libflac, libvorbis, bzip2, liblzma diff --git a/ports/aws-sdk-cpp/CONTROL b/ports/aws-sdk-cpp/CONTROL index 3c784db00..d2f5c186b 100644 --- a/ports/aws-sdk-cpp/CONTROL +++ b/ports/aws-sdk-cpp/CONTROL @@ -1,3 +1,419 @@ Source: aws-sdk-cpp -Version: 1.3.58 +Version: 1.4.24 Description: AWS SDK for C++ +Default-Features: dynamodb, ec2, kms, rds, s3, sns, sqs +# Automatically generated by generateFeatures.ps1 + +Feature: access-management +Description: C++ SDK for the AWS access-management service + +Feature: acm +Description: C++ SDK for the AWS acm service + +Feature: alexaforbusiness +Description: C++ SDK for the AWS alexaforbusiness service + +Feature: apigateway +Description: C++ SDK for the AWS apigateway service + +Feature: application-autoscaling +Description: C++ SDK for the AWS application-autoscaling service + +Feature: appstream +Description: C++ SDK for the AWS appstream service + +Feature: appsync +Description: C++ SDK for the AWS appsync service + +Feature: athena +Description: C++ SDK for the AWS athena service + +Feature: autoscaling +Description: C++ SDK for the AWS autoscaling service + +Feature: autoscaling-plans +Description: C++ SDK for the AWS autoscaling-plans service + +Feature: AWSMigrationHub +Description: C++ SDK for the AWS AWSMigrationHub service + +Feature: batch +Description: C++ SDK for the AWS batch service + +Feature: budgets +Description: C++ SDK for the AWS budgets service + +Feature: ce +Description: C++ SDK for the AWS ce service + +Feature: cloud9 +Description: C++ SDK for the AWS cloud9 service + +Feature: clouddirectory +Description: C++ SDK for the AWS clouddirectory service + +Feature: cloudformation +Description: C++ SDK for the AWS cloudformation service + +Feature: cloudfront +Description: C++ SDK for the AWS cloudfront service + +Feature: cloudhsm +Description: C++ SDK for the AWS cloudhsm service + +Feature: cloudhsmv2 +Description: C++ SDK for the AWS cloudhsmv2 service + +Feature: cloudsearch +Description: C++ SDK for the AWS cloudsearch service + +Feature: cloudsearchdomain +Description: C++ SDK for the AWS cloudsearchdomain service + +Feature: cloudtrail +Description: C++ SDK for the AWS cloudtrail service + +Feature: codebuild +Description: C++ SDK for the AWS codebuild service + +Feature: codecommit +Description: C++ SDK for the AWS codecommit service + +Feature: codedeploy +Description: C++ SDK for the AWS codedeploy service + +Feature: codepipeline +Description: C++ SDK for the AWS codepipeline service + +Feature: codestar +Description: C++ SDK for the AWS codestar service + +Feature: cognito-identity +Description: C++ SDK for the AWS cognito-identity service + +Feature: cognito-idp +Description: C++ SDK for the AWS cognito-idp service + +Feature: cognito-sync +Description: C++ SDK for the AWS cognito-sync service + +Feature: comprehend +Description: C++ SDK for the AWS comprehend service + +Feature: config +Description: C++ SDK for the AWS config service + +Feature: cur +Description: C++ SDK for the AWS cur service + +Feature: datapipeline +Description: C++ SDK for the AWS datapipeline service + +Feature: dax +Description: C++ SDK for the AWS dax service + +Feature: devicefarm +Description: C++ SDK for the AWS devicefarm service + +Feature: directconnect +Description: C++ SDK for the AWS directconnect service + +Feature: discovery +Description: C++ SDK for the AWS discovery service + +Feature: dms +Description: C++ SDK for the AWS dms service + +Feature: ds +Description: C++ SDK for the AWS ds service + +Feature: dynamodb +Description: C++ SDK for the AWS dynamodb service + +Feature: dynamodbstreams +Description: C++ SDK for the AWS dynamodbstreams service + +Feature: ec2 +Description: C++ SDK for the AWS ec2 service + +Feature: ecr +Description: C++ SDK for the AWS ecr service + +Feature: ecs +Description: C++ SDK for the AWS ecs service + +Feature: elasticache +Description: C++ SDK for the AWS elasticache service + +Feature: elasticbeanstalk +Description: C++ SDK for the AWS elasticbeanstalk service + +Feature: elasticfilesystem +Description: C++ SDK for the AWS elasticfilesystem service + +Feature: elasticloadbalancing +Description: C++ SDK for the AWS elasticloadbalancing service + +Feature: elasticloadbalancingv2 +Description: C++ SDK for the AWS elasticloadbalancingv2 service + +Feature: elasticmapreduce +Description: C++ SDK for the AWS elasticmapreduce service + +Feature: elastictranscoder +Description: C++ SDK for the AWS elastictranscoder service + +Feature: email +Description: C++ SDK for the AWS email service + +Feature: es +Description: C++ SDK for the AWS es service + +Feature: events +Description: C++ SDK for the AWS events service + +Feature: firehose +Description: C++ SDK for the AWS firehose service + +Feature: gamelift +Description: C++ SDK for the AWS gamelift service + +Feature: glacier +Description: C++ SDK for the AWS glacier service + +Feature: glue +Description: C++ SDK for the AWS glue service + +Feature: greengrass +Description: C++ SDK for the AWS greengrass service + +Feature: guardduty +Description: C++ SDK for the AWS guardduty service + +Feature: health +Description: C++ SDK for the AWS health service + +Feature: iam +Description: C++ SDK for the AWS iam service + +Feature: identity-management +Description: C++ SDK for the AWS identity-management service + +Feature: importexport +Description: C++ SDK for the AWS importexport service + +Feature: inspector +Description: C++ SDK for the AWS inspector service + +Feature: iot +Description: C++ SDK for the AWS iot service + +Feature: iot-data +Description: C++ SDK for the AWS iot-data service + +Feature: iot-jobs-data +Description: C++ SDK for the AWS iot-jobs-data service + +Feature: kinesis +Description: C++ SDK for the AWS kinesis service + +Feature: kinesis-video-archived-media +Description: C++ SDK for the AWS kinesis-video-archived-media service + +Feature: kinesis-video-media +Description: C++ SDK for the AWS kinesis-video-media service + +Feature: kinesisanalytics +Description: C++ SDK for the AWS kinesisanalytics service + +Feature: kinesisvideo +Description: C++ SDK for the AWS kinesisvideo service + +Feature: kms +Description: C++ SDK for the AWS kms service + +Feature: lambda +Description: C++ SDK for the AWS lambda service + +Feature: lex +Description: C++ SDK for the AWS lex service + +Feature: lex-models +Description: C++ SDK for the AWS lex-models service + +Feature: lightsail +Description: C++ SDK for the AWS lightsail service + +Feature: logs +Description: C++ SDK for the AWS logs service + +Feature: machinelearning +Description: C++ SDK for the AWS machinelearning service + +Feature: marketplace-entitlement +Description: C++ SDK for the AWS marketplace-entitlement service + +Feature: marketplacecommerceanalytics +Description: C++ SDK for the AWS marketplacecommerceanalytics service + +Feature: mediaconvert +Description: C++ SDK for the AWS mediaconvert service + +Feature: medialive +Description: C++ SDK for the AWS medialive service + +Feature: mediapackage +Description: C++ SDK for the AWS mediapackage service + +Feature: mediastore +Description: C++ SDK for the AWS mediastore service + +Feature: mediastore-data +Description: C++ SDK for the AWS mediastore-data service + +Feature: meteringmarketplace +Description: C++ SDK for the AWS meteringmarketplace service + +Feature: mobile +Description: C++ SDK for the AWS mobile service + +Feature: mobileanalytics +Description: C++ SDK for the AWS mobileanalytics service + +Feature: monitoring +Description: C++ SDK for the AWS monitoring service + +Feature: mq +Description: C++ SDK for the AWS mq service + +Feature: mturk-requester +Description: C++ SDK for the AWS mturk-requester service + +Feature: opsworks +Description: C++ SDK for the AWS opsworks service + +Feature: opsworkscm +Description: C++ SDK for the AWS opsworkscm service + +Feature: organizations +Description: C++ SDK for the AWS organizations service + +Feature: pinpoint +Description: C++ SDK for the AWS pinpoint service + +Feature: polly +Description: C++ SDK for the AWS polly service + +Feature: pricing +Description: C++ SDK for the AWS pricing service + +Feature: queues +Description: C++ SDK for the AWS queues service + +Feature: rds +Description: C++ SDK for the AWS rds service + +Feature: redshift +Description: C++ SDK for the AWS redshift service + +Feature: rekognition +Description: C++ SDK for the AWS rekognition service + +Feature: resource-groups +Description: C++ SDK for the AWS resource-groups service + +Feature: resourcegroupstaggingapi +Description: C++ SDK for the AWS resourcegroupstaggingapi service + +Feature: route53 +Description: C++ SDK for the AWS route53 service + +Feature: route53domains +Description: C++ SDK for the AWS route53domains service + +Feature: s3 +Description: C++ SDK for the AWS s3 service + +Feature: s3-encryption +Description: C++ SDK for the AWS s3-encryption service + +Feature: sagemaker +Description: C++ SDK for the AWS sagemaker service + +Feature: sagemaker-runtime +Description: C++ SDK for the AWS sagemaker-runtime service + +Feature: sdb +Description: C++ SDK for the AWS sdb service + +Feature: serverlessrepo +Description: C++ SDK for the AWS serverlessrepo service + +Feature: servicecatalog +Description: C++ SDK for the AWS servicecatalog service + +Feature: servicediscovery +Description: C++ SDK for the AWS servicediscovery service + +Feature: shield +Description: C++ SDK for the AWS shield service + +Feature: sms +Description: C++ SDK for the AWS sms service + +Feature: snowball +Description: C++ SDK for the AWS snowball service + +Feature: sns +Description: C++ SDK for the AWS sns service + +Feature: sqs +Description: C++ SDK for the AWS sqs service + +Feature: ssm +Description: C++ SDK for the AWS ssm service + +Feature: states +Description: C++ SDK for the AWS states service + +Feature: storagegateway +Description: C++ SDK for the AWS storagegateway service + +Feature: sts +Description: C++ SDK for the AWS sts service + +Feature: support +Description: C++ SDK for the AWS support service + +Feature: swf +Description: C++ SDK for the AWS swf service + +Feature: text-to-speech +Description: C++ SDK for the AWS text-to-speech service + +Feature: transcribe +Description: C++ SDK for the AWS transcribe service + +Feature: transfer +Description: C++ SDK for the AWS transfer service + +Feature: translate +Description: C++ SDK for the AWS translate service + +Feature: waf +Description: C++ SDK for the AWS waf service + +Feature: waf-regional +Description: C++ SDK for the AWS waf-regional service + +Feature: workdocs +Description: C++ SDK for the AWS workdocs service + +Feature: workmail +Description: C++ SDK for the AWS workmail service + +Feature: workspaces +Description: C++ SDK for the AWS workspaces service + +Feature: xray +Description: C++ SDK for the AWS xray service diff --git a/ports/aws-sdk-cpp/CONTROL.in b/ports/aws-sdk-cpp/CONTROL.in new file mode 100644 index 000000000..5cf05fdff --- /dev/null +++ b/ports/aws-sdk-cpp/CONTROL.in @@ -0,0 +1,4 @@ +Source: aws-sdk-cpp +Version: 1.4.21 +Description: AWS SDK for C++ +Default-Features: dynamodb, ec2, kms, rds, s3, sns, sqs diff --git a/ports/aws-sdk-cpp/compute_build_only.cmake b/ports/aws-sdk-cpp/compute_build_only.cmake new file mode 100644 index 000000000..a50ed2128 --- /dev/null +++ b/ports/aws-sdk-cpp/compute_build_only.cmake @@ -0,0 +1,415 @@ +# Automatically generated by generateFeatures.ps1 +if("access-management" IN_LIST FEATURES) + list(APPEND BUILD_ONLY access-management) +endif() +if("acm" IN_LIST FEATURES) + list(APPEND BUILD_ONLY acm) +endif() +if("alexaforbusiness" IN_LIST FEATURES) + list(APPEND BUILD_ONLY alexaforbusiness) +endif() +if("apigateway" IN_LIST FEATURES) + list(APPEND BUILD_ONLY apigateway) +endif() +if("application-autoscaling" IN_LIST FEATURES) + list(APPEND BUILD_ONLY application-autoscaling) +endif() +if("appstream" IN_LIST FEATURES) + list(APPEND BUILD_ONLY appstream) +endif() +if("appsync" IN_LIST FEATURES) + list(APPEND BUILD_ONLY appsync) +endif() +if("athena" IN_LIST FEATURES) + list(APPEND BUILD_ONLY athena) +endif() +if("autoscaling" IN_LIST FEATURES) + list(APPEND BUILD_ONLY autoscaling) +endif() +if("autoscaling-plans" IN_LIST FEATURES) + list(APPEND BUILD_ONLY autoscaling-plans) +endif() +if("AWSMigrationHub" IN_LIST FEATURES) + list(APPEND BUILD_ONLY AWSMigrationHub) +endif() +if("batch" IN_LIST FEATURES) + list(APPEND BUILD_ONLY batch) +endif() +if("budgets" IN_LIST FEATURES) + list(APPEND BUILD_ONLY budgets) +endif() +if("ce" IN_LIST FEATURES) + list(APPEND BUILD_ONLY ce) +endif() +if("cloud9" IN_LIST FEATURES) + list(APPEND BUILD_ONLY cloud9) +endif() +if("clouddirectory" IN_LIST FEATURES) + list(APPEND BUILD_ONLY clouddirectory) +endif() +if("cloudformation" IN_LIST FEATURES) + list(APPEND BUILD_ONLY cloudformation) +endif() +if("cloudfront" IN_LIST FEATURES) + list(APPEND BUILD_ONLY cloudfront) +endif() +if("cloudhsm" IN_LIST FEATURES) + list(APPEND BUILD_ONLY cloudhsm) +endif() +if("cloudhsmv2" IN_LIST FEATURES) + list(APPEND BUILD_ONLY cloudhsmv2) +endif() +if("cloudsearch" IN_LIST FEATURES) + list(APPEND BUILD_ONLY cloudsearch) +endif() +if("cloudsearchdomain" IN_LIST FEATURES) + list(APPEND BUILD_ONLY cloudsearchdomain) +endif() +if("cloudtrail" IN_LIST FEATURES) + list(APPEND BUILD_ONLY cloudtrail) +endif() +if("codebuild" IN_LIST FEATURES) + list(APPEND BUILD_ONLY codebuild) +endif() +if("codecommit" IN_LIST FEATURES) + list(APPEND BUILD_ONLY codecommit) +endif() +if("codedeploy" IN_LIST FEATURES) + list(APPEND BUILD_ONLY codedeploy) +endif() +if("codepipeline" IN_LIST FEATURES) + list(APPEND BUILD_ONLY codepipeline) +endif() +if("codestar" IN_LIST FEATURES) + list(APPEND BUILD_ONLY codestar) +endif() +if("cognito-identity" IN_LIST FEATURES) + list(APPEND BUILD_ONLY cognito-identity) +endif() +if("cognito-idp" IN_LIST FEATURES) + list(APPEND BUILD_ONLY cognito-idp) +endif() +if("cognito-sync" IN_LIST FEATURES) + list(APPEND BUILD_ONLY cognito-sync) +endif() +if("comprehend" IN_LIST FEATURES) + list(APPEND BUILD_ONLY comprehend) +endif() +if("config" IN_LIST FEATURES) + list(APPEND BUILD_ONLY config) +endif() +if("cur" IN_LIST FEATURES) + list(APPEND BUILD_ONLY cur) +endif() +if("datapipeline" IN_LIST FEATURES) + list(APPEND BUILD_ONLY datapipeline) +endif() +if("dax" IN_LIST FEATURES) + list(APPEND BUILD_ONLY dax) +endif() +if("devicefarm" IN_LIST FEATURES) + list(APPEND BUILD_ONLY devicefarm) +endif() +if("directconnect" IN_LIST FEATURES) + list(APPEND BUILD_ONLY directconnect) +endif() +if("discovery" IN_LIST FEATURES) + list(APPEND BUILD_ONLY discovery) +endif() +if("dms" IN_LIST FEATURES) + list(APPEND BUILD_ONLY dms) +endif() +if("ds" IN_LIST FEATURES) + list(APPEND BUILD_ONLY ds) +endif() +if("dynamodb" IN_LIST FEATURES) + list(APPEND BUILD_ONLY dynamodb) +endif() +if("dynamodbstreams" IN_LIST FEATURES) + list(APPEND BUILD_ONLY dynamodbstreams) +endif() +if("ec2" IN_LIST FEATURES) + list(APPEND BUILD_ONLY ec2) +endif() +if("ecr" IN_LIST FEATURES) + list(APPEND BUILD_ONLY ecr) +endif() +if("ecs" IN_LIST FEATURES) + list(APPEND BUILD_ONLY ecs) +endif() +if("elasticache" IN_LIST FEATURES) + list(APPEND BUILD_ONLY elasticache) +endif() +if("elasticbeanstalk" IN_LIST FEATURES) + list(APPEND BUILD_ONLY elasticbeanstalk) +endif() +if("elasticfilesystem" IN_LIST FEATURES) + list(APPEND BUILD_ONLY elasticfilesystem) +endif() +if("elasticloadbalancing" IN_LIST FEATURES) + list(APPEND BUILD_ONLY elasticloadbalancing) +endif() +if("elasticloadbalancingv2" IN_LIST FEATURES) + list(APPEND BUILD_ONLY elasticloadbalancingv2) +endif() +if("elasticmapreduce" IN_LIST FEATURES) + list(APPEND BUILD_ONLY elasticmapreduce) +endif() +if("elastictranscoder" IN_LIST FEATURES) + list(APPEND BUILD_ONLY elastictranscoder) +endif() +if("email" IN_LIST FEATURES) + list(APPEND BUILD_ONLY email) +endif() +if("es" IN_LIST FEATURES) + list(APPEND BUILD_ONLY es) +endif() +if("events" IN_LIST FEATURES) + list(APPEND BUILD_ONLY events) +endif() +if("firehose" IN_LIST FEATURES) + list(APPEND BUILD_ONLY firehose) +endif() +if("gamelift" IN_LIST FEATURES) + list(APPEND BUILD_ONLY gamelift) +endif() +if("glacier" IN_LIST FEATURES) + list(APPEND BUILD_ONLY glacier) +endif() +if("glue" IN_LIST FEATURES) + list(APPEND BUILD_ONLY glue) +endif() +if("greengrass" IN_LIST FEATURES) + list(APPEND BUILD_ONLY greengrass) +endif() +if("guardduty" IN_LIST FEATURES) + list(APPEND BUILD_ONLY guardduty) +endif() +if("health" IN_LIST FEATURES) + list(APPEND BUILD_ONLY health) +endif() +if("iam" IN_LIST FEATURES) + list(APPEND BUILD_ONLY iam) +endif() +if("identity-management" IN_LIST FEATURES) + list(APPEND BUILD_ONLY identity-management) +endif() +if("importexport" IN_LIST FEATURES) + list(APPEND BUILD_ONLY importexport) +endif() +if("inspector" IN_LIST FEATURES) + list(APPEND BUILD_ONLY inspector) +endif() +if("iot" IN_LIST FEATURES) + list(APPEND BUILD_ONLY iot) +endif() +if("iot-data" IN_LIST FEATURES) + list(APPEND BUILD_ONLY iot-data) +endif() +if("iot-jobs-data" IN_LIST FEATURES) + list(APPEND BUILD_ONLY iot-jobs-data) +endif() +if("kinesis" IN_LIST FEATURES) + list(APPEND BUILD_ONLY kinesis) +endif() +if("kinesis-video-archived-media" IN_LIST FEATURES) + list(APPEND BUILD_ONLY kinesis-video-archived-media) +endif() +if("kinesis-video-media" IN_LIST FEATURES) + list(APPEND BUILD_ONLY kinesis-video-media) +endif() +if("kinesisanalytics" IN_LIST FEATURES) + list(APPEND BUILD_ONLY kinesisanalytics) +endif() +if("kinesisvideo" IN_LIST FEATURES) + list(APPEND BUILD_ONLY kinesisvideo) +endif() +if("kms" IN_LIST FEATURES) + list(APPEND BUILD_ONLY kms) +endif() +if("lambda" IN_LIST FEATURES) + list(APPEND BUILD_ONLY lambda) +endif() +if("lex" IN_LIST FEATURES) + list(APPEND BUILD_ONLY lex) +endif() +if("lex-models" IN_LIST FEATURES) + list(APPEND BUILD_ONLY lex-models) +endif() +if("lightsail" IN_LIST FEATURES) + list(APPEND BUILD_ONLY lightsail) +endif() +if("logs" IN_LIST FEATURES) + list(APPEND BUILD_ONLY logs) +endif() +if("machinelearning" IN_LIST FEATURES) + list(APPEND BUILD_ONLY machinelearning) +endif() +if("marketplace-entitlement" IN_LIST FEATURES) + list(APPEND BUILD_ONLY marketplace-entitlement) +endif() +if("marketplacecommerceanalytics" IN_LIST FEATURES) + list(APPEND BUILD_ONLY marketplacecommerceanalytics) +endif() +if("mediaconvert" IN_LIST FEATURES) + list(APPEND BUILD_ONLY mediaconvert) +endif() +if("medialive" IN_LIST FEATURES) + list(APPEND BUILD_ONLY medialive) +endif() +if("mediapackage" IN_LIST FEATURES) + list(APPEND BUILD_ONLY mediapackage) +endif() +if("mediastore" IN_LIST FEATURES) + list(APPEND BUILD_ONLY mediastore) +endif() +if("mediastore-data" IN_LIST FEATURES) + list(APPEND BUILD_ONLY mediastore-data) +endif() +if("meteringmarketplace" IN_LIST FEATURES) + list(APPEND BUILD_ONLY meteringmarketplace) +endif() +if("mobile" IN_LIST FEATURES) + list(APPEND BUILD_ONLY mobile) +endif() +if("mobileanalytics" IN_LIST FEATURES) + list(APPEND BUILD_ONLY mobileanalytics) +endif() +if("monitoring" IN_LIST FEATURES) + list(APPEND BUILD_ONLY monitoring) +endif() +if("mq" IN_LIST FEATURES) + list(APPEND BUILD_ONLY mq) +endif() +if("mturk-requester" IN_LIST FEATURES) + list(APPEND BUILD_ONLY mturk-requester) +endif() +if("opsworks" IN_LIST FEATURES) + list(APPEND BUILD_ONLY opsworks) +endif() +if("opsworkscm" IN_LIST FEATURES) + list(APPEND BUILD_ONLY opsworkscm) +endif() +if("organizations" IN_LIST FEATURES) + list(APPEND BUILD_ONLY organizations) +endif() +if("pinpoint" IN_LIST FEATURES) + list(APPEND BUILD_ONLY pinpoint) +endif() +if("polly" IN_LIST FEATURES) + list(APPEND BUILD_ONLY polly) +endif() +if("pricing" IN_LIST FEATURES) + list(APPEND BUILD_ONLY pricing) +endif() +if("queues" IN_LIST FEATURES) + list(APPEND BUILD_ONLY queues) +endif() +if("rds" IN_LIST FEATURES) + list(APPEND BUILD_ONLY rds) +endif() +if("redshift" IN_LIST FEATURES) + list(APPEND BUILD_ONLY redshift) +endif() +if("rekognition" IN_LIST FEATURES) + list(APPEND BUILD_ONLY rekognition) +endif() +if("resource-groups" IN_LIST FEATURES) + list(APPEND BUILD_ONLY resource-groups) +endif() +if("resourcegroupstaggingapi" IN_LIST FEATURES) + list(APPEND BUILD_ONLY resourcegroupstaggingapi) +endif() +if("route53" IN_LIST FEATURES) + list(APPEND BUILD_ONLY route53) +endif() +if("route53domains" IN_LIST FEATURES) + list(APPEND BUILD_ONLY route53domains) +endif() +if("s3" IN_LIST FEATURES) + list(APPEND BUILD_ONLY s3) +endif() +if("s3-encryption" IN_LIST FEATURES) + list(APPEND BUILD_ONLY s3-encryption) +endif() +if("sagemaker" IN_LIST FEATURES) + list(APPEND BUILD_ONLY sagemaker) +endif() +if("sagemaker-runtime" IN_LIST FEATURES) + list(APPEND BUILD_ONLY sagemaker-runtime) +endif() +if("sdb" IN_LIST FEATURES) + list(APPEND BUILD_ONLY sdb) +endif() +if("serverlessrepo" IN_LIST FEATURES) + list(APPEND BUILD_ONLY serverlessrepo) +endif() +if("servicecatalog" IN_LIST FEATURES) + list(APPEND BUILD_ONLY servicecatalog) +endif() +if("servicediscovery" IN_LIST FEATURES) + list(APPEND BUILD_ONLY servicediscovery) +endif() +if("shield" IN_LIST FEATURES) + list(APPEND BUILD_ONLY shield) +endif() +if("sms" IN_LIST FEATURES) + list(APPEND BUILD_ONLY sms) +endif() +if("snowball" IN_LIST FEATURES) + list(APPEND BUILD_ONLY snowball) +endif() +if("sns" IN_LIST FEATURES) + list(APPEND BUILD_ONLY sns) +endif() +if("sqs" IN_LIST FEATURES) + list(APPEND BUILD_ONLY sqs) +endif() +if("ssm" IN_LIST FEATURES) + list(APPEND BUILD_ONLY ssm) +endif() +if("states" IN_LIST FEATURES) + list(APPEND BUILD_ONLY states) +endif() +if("storagegateway" IN_LIST FEATURES) + list(APPEND BUILD_ONLY storagegateway) +endif() +if("sts" IN_LIST FEATURES) + list(APPEND BUILD_ONLY sts) +endif() +if("support" IN_LIST FEATURES) + list(APPEND BUILD_ONLY support) +endif() +if("swf" IN_LIST FEATURES) + list(APPEND BUILD_ONLY swf) +endif() +if("text-to-speech" IN_LIST FEATURES) + list(APPEND BUILD_ONLY text-to-speech) +endif() +if("transcribe" IN_LIST FEATURES) + list(APPEND BUILD_ONLY transcribe) +endif() +if("transfer" IN_LIST FEATURES) + list(APPEND BUILD_ONLY transfer) +endif() +if("translate" IN_LIST FEATURES) + list(APPEND BUILD_ONLY translate) +endif() +if("waf" IN_LIST FEATURES) + list(APPEND BUILD_ONLY waf) +endif() +if("waf-regional" IN_LIST FEATURES) + list(APPEND BUILD_ONLY waf-regional) +endif() +if("workdocs" IN_LIST FEATURES) + list(APPEND BUILD_ONLY workdocs) +endif() +if("workmail" IN_LIST FEATURES) + list(APPEND BUILD_ONLY workmail) +endif() +if("workspaces" IN_LIST FEATURES) + list(APPEND BUILD_ONLY workspaces) +endif() +if("xray" IN_LIST FEATURES) + list(APPEND BUILD_ONLY xray) +endif() diff --git a/ports/aws-sdk-cpp/disable_warning_as_error.patch b/ports/aws-sdk-cpp/disable_warning_as_error.patch deleted file mode 100644 index ec5587eb8..000000000 --- a/ports/aws-sdk-cpp/disable_warning_as_error.patch +++ /dev/null @@ -1,13 +0,0 @@ -diff --git a/cmake/compiler_settings.cmake b/cmake/compiler_settings.cmake -index 36795a2..77334ee 100644 ---- a/cmake/compiler_settings.cmake -+++ b/cmake/compiler_settings.cmake -@@ -57,7 +57,7 @@ endif() - if(MSVC) - # warnings as errors, max warning level (4) - if(NOT CMAKE_CXX_FLAGS MATCHES "/WX") -- set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} /WX") -+ #set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} /WX") - endif() - - # taken from http://stackoverflow.com/questions/2368811/how-to-set-warning-level-in-cmake diff --git a/ports/aws-sdk-cpp/drop_git.patch b/ports/aws-sdk-cpp/drop_git.patch deleted file mode 100644 index 491831bd7..000000000 --- a/ports/aws-sdk-cpp/drop_git.patch +++ /dev/null @@ -1,13 +0,0 @@ -diff --git a/CMakeLists.txt b/CMakeLists.txt -index 9d2a98a..ce58b68 100644 ---- a/CMakeLists.txt -+++ b/CMakeLists.txt -@@ -22,7 +22,7 @@ if(CMAKE_MAJOR_VERSION LESS 3) - endif() - - # git is required for Android builds and optional for all other platforms --find_package(Git) -+#find_package(Git) - - # Cmake invocation variables: - # CUSTOM_MEMORY_MANAGEMENT - if set to 1, generates the sdk project files with custom memory management enabled, otherwise disables it diff --git a/ports/aws-sdk-cpp/generateFeatures.ps1 b/ports/aws-sdk-cpp/generateFeatures.ps1 new file mode 100644 index 000000000..8c8b1a342 --- /dev/null +++ b/ports/aws-sdk-cpp/generateFeatures.ps1 @@ -0,0 +1,51 @@ +[CmdletBinding()] +param( + [Parameter(Mandatory=$true)][string]$ExtractedSources, + [Parameter(Mandatory=$true)][string]$ControlFileIn, + [Parameter(Mandatory=$true)][string]$ControlFile, + [Parameter(Mandatory=$true)][string]$CMakeFragmentFile +) + +$subfolders = Get-Item $ExtractedSources\aws-cpp-sdk-* + +$controltext = gc $ControlFileIn +$controltext += @("# Automatically generated by generateFeatures.ps1") + +$cmakefragmenttext = @("# Automatically generated by generateFeatures.ps1") + +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 "`"","" + "Description: $desc" + } + else { "Description: C++ SDK for the AWS $modulename service" } + } + else { "Description: C++ SDK for the AWS $modulename service" } +} + +$subfolders | % { + $modulename = $_.name -replace "^aws-cpp-sdk-","" + if ($modulename -match "-tests`$") { return } + if ($modulename -match "-sample`$") { return } + if ($modulename -eq "core") { return } + + $controltext += @("") + $controltext += @("Feature: $modulename") + $controltext += @(GetDescription $_ $modulename) + + $cmakefragmenttext += @( + "if(`"$modulename`" IN_LIST FEATURES)", + " list(APPEND BUILD_ONLY $modulename)", + "endif()" + ) +} + +Write-Verbose ($controltext -join "`n") +[IO.File]::WriteAllText($ControlFile, ($controltext -join "`n")+"`n") + +Write-Verbose ($cmakefragmenttext -join "`n") +[IO.File]::WriteAllText($CMakeFragmentFile, ($cmakefragmenttext -join "`n") +"`n") diff --git a/ports/aws-sdk-cpp/portfile.cmake b/ports/aws-sdk-cpp/portfile.cmake index d21932496..28097ee1a 100644 --- a/ports/aws-sdk-cpp/portfile.cmake +++ b/ports/aws-sdk-cpp/portfile.cmake @@ -3,79 +3,77 @@ include(vcpkg_common_functions) vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO aws/aws-sdk-cpp - REF 1.3.58 - SHA512 755fe3fd9d507a43fb03c1530a979f5a5a2848588ccab39509987043b3d274f27a7b163bf078a006123450ee881fd4a092cd703246f6f669810f47c186c2b0b8 + REF 1.4.24 + SHA512 bda259caeeb909884128268f0dfe3ca58ce665be2a0304302f1fd09c4217cbcd34c20119009123aeb80377dfe5144b72cbd98d2acbdc9ffa729c09e380751bf2 HEAD_REF master ) -vcpkg_apply_patches( - SOURCE_PATH ${SOURCE_PATH} - PATCHES - ${CMAKE_CURRENT_LIST_DIR}/drop_git.patch - ${CMAKE_CURRENT_LIST_DIR}/disable_warning_as_error.patch -) +string(COMPARE EQUAL "${VCPKG_CRT_LINKAGE}" "dynamic" FORCE_SHARED_CRT) -if(VCPKG_CRT_LINKAGE STREQUAL static) - set(FORCE_SHARED_CRT OFF) -else() - set(FORCE_SHARED_CRT ON) -endif() +set(BUILD_ONLY core) + +include(${CMAKE_CURRENT_LIST_DIR}/compute_build_only.cmake) + +# This handles escaping the list +string(REPLACE ";" "\\\\\\;" BUILD_ONLY "${BUILD_ONLY}") vcpkg_configure_cmake( SOURCE_PATH ${SOURCE_PATH} - PREFER_NINJA - OPTIONS - -DENABLE_TESTING=OFF - -DFORCE_SHARED_CRT=${FORCE_SHARED_CRT} + PREFER_NINJA + OPTIONS + -DENABLE_UNITY_BUILD=ON + -DENABLE_TESTING=OFF + -DFORCE_SHARED_CRT=${FORCE_SHARED_CRT} + -DCMAKE_DISABLE_FIND_PACKAGE_Git=TRUE + "-DBUILD_ONLY=${BUILD_ONLY}" ) vcpkg_install_cmake() -file(GLOB CMAKE_FILES ${CURRENT_PACKAGES_DIR}/lib/cmake/*) - -file(MAKE_DIRECTORY ${CURRENT_PACKAGES_DIR}/share) - -file(COPY ${CMAKE_FILES} DESTINATION ${CURRENT_PACKAGES_DIR}/share) +vcpkg_fixup_cmake_targets(CONFIG_PATH lib/cmake TARGET_PATH share) vcpkg_copy_pdbs() -file(GLOB AWS_TARGETS "${CURRENT_PACKAGES_DIR}/share/aws-cpp-sdk-*/aws-cpp-sdk-*targets.cmake") -foreach(AWS_TARGETS ${AWS_TARGETS}) - file(READ ${AWS_TARGETS} _contents) +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 - "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}") - file(WRITE ${AWS_TARGETS} "${_contents}") -endforeach() - -file(GLOB AWS_TARGETS_RELEASE "${CURRENT_PACKAGES_DIR}/share/aws-cpp-sdk-*/aws-cpp-sdk-*targets-release.cmake") -foreach(AWS_TARGETS_RELEASE ${AWS_TARGETS_RELEASE}) - file(READ ${AWS_TARGETS_RELEASE} _contents) - string(REGEX REPLACE - "bin\\/([A-Za-z0-9_.-]+lib)" + "bin\\/([A-Za-z0-9_.-]+\\.lib)" "lib/\\1" _contents "${_contents}") - file(WRITE ${AWS_TARGETS_RELEASE} "${_contents}") + file(WRITE ${AWS_TARGET} "${_contents}") endforeach() -file(REMOVE_RECURSE - ${CURRENT_PACKAGES_DIR}/debug/include - ${CURRENT_PACKAGES_DIR}/lib/cmake - ${CURRENT_PACKAGES_DIR}/lib/pkgconfig - ${CURRENT_PACKAGES_DIR}/debug/lib/cmake - ${CURRENT_PACKAGES_DIR}/debug/lib/pkgconfig - ${CURRENT_PACKAGES_DIR}/nuget - ${CURRENT_PACKAGES_DIR}/debug/nuget) +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}/share/AWSSDK + ${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) - file(GLOB DEBUG_LIB_FILES ${CURRENT_PACKAGES_DIR}/debug/bin/*.lib) - file(COPY ${LIB_FILES} DESTINATION ${CURRENT_PACKAGES_DIR}/lib) - file(COPY ${DEBUG_LIB_FILES} DESTINATION ${CURRENT_PACKAGES_DIR}/debug/lib) - file(REMOVE ${LIB_FILES} ${DEBUG_LIB_FILES}) - - file(APPEND ${CURRENT_PACKAGES_DIR}/include/aws/core/SDKConfig.h "#define USE_IMPORT_EXPORT") + 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() # Handle copyright diff --git a/ports/azure-c-shared-utility/CONTROL b/ports/azure-c-shared-utility/CONTROL new file mode 100644 index 000000000..99cbcd38d --- /dev/null +++ b/ports/azure-c-shared-utility/CONTROL @@ -0,0 +1,3 @@ +Source: azure-c-shared-utility +Version: 1.0.0-pre-release-1.0.9 +Description: Azure C SDKs common code diff --git a/ports/azure-c-shared-utility/portfile.cmake b/ports/azure-c-shared-utility/portfile.cmake new file mode 100644 index 000000000..4635f0d97 --- /dev/null +++ b/ports/azure-c-shared-utility/portfile.cmake @@ -0,0 +1,40 @@ +include(vcpkg_common_functions) + +if(VCPKG_LIBRARY_LINKAGE STREQUAL "dynamic") + message("azure-c-shared-utility only supports static linkage") + set(VCPKG_LIBRARY_LINKAGE "static") +endif() + +vcpkg_from_github( + OUT_SOURCE_PATH SOURCE_PATH + REPO Azure/azure-c-shared-utility + REF 1.0.0-pre-release-1.0.9 + SHA512 df28d0bb01961943d86febd7b54bafd7037b8461b4025e1db26ba0b76c4cadfa722c4cb5695ac0d4f57e16576eb23f3da02703bcc363af54a0476bccec95ce45 + HEAD_REF master +) + +string(COMPARE EQUAL "${VCPKG_LIBRARY_LINKAGE}" "dynamic" BUILD_AS_DYNAMIC) + +vcpkg_configure_cmake( + SOURCE_PATH ${SOURCE_PATH} + PREFER_NINJA + OPTIONS + -Dskip_samples=ON + -Duse_installed_dependencies=ON + -Duse_default_uuid=ON + -Dbuild_as_dynamic=${BUILD_AS_DYNAMIC} +) + +vcpkg_install_cmake() + +vcpkg_fixup_cmake_targets(CONFIG_PATH cmake TARGET_PATH share/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/azure-c-shared-utility) + +file(INSTALL + ${SOURCE_PATH}/LICENSE + DESTINATION ${CURRENT_PACKAGES_DIR}/share/azure-c-shared-utility RENAME copyright) + +vcpkg_copy_pdbs() diff --git a/ports/azure-iot-sdk-c/CONTROL b/ports/azure-iot-sdk-c/CONTROL new file mode 100644 index 000000000..8c9bdb956 --- /dev/null +++ b/ports/azure-iot-sdk-c/CONTROL @@ -0,0 +1,4 @@ +Source: azure-iot-sdk-c +Version: 1.0.0-pre-release-1.0.9 +Build-Depends: azure-uamqp-c, azure-umqtt-c, azure-c-shared-utility, parson +Description: A C99 SDK for connecting devices to Microsoft Azure IoT services diff --git a/ports/azure-iot-sdk-c/improve-external-deps.patch b/ports/azure-iot-sdk-c/improve-external-deps.patch new file mode 100644 index 000000000..5af7ef29e --- /dev/null +++ b/ports/azure-iot-sdk-c/improve-external-deps.patch @@ -0,0 +1,136 @@ +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,10 @@ + #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(unofficial-parson) ++find_dependency(uamqp) ++find_dependency(umqtt) ++find_dependency(azure_c_shared_utility) + + include("${CMAKE_CURRENT_LIST_DIR}/azure_iot_sdksTargets.cmake") + +diff --git a/dependencies.cmake b/dependencies.cmake +index 063733a..71bfc7d 100644 +--- a/dependencies.cmake ++++ b/dependencies.cmake +@@ -18,6 +18,8 @@ if(${use_installed_dependencies}) + endif() + endif() + ++ find_package(unofficial-parson REQUIRED) ++ link_libraries(unofficial::parson::parson) + else() + add_subdirectory(c-utility) + +diff --git a/iothub_client/CMakeLists.txt b/iothub_client/CMakeLists.txt +index e6d000a..70ade26 100644 +--- a/iothub_client/CMakeLists.txt ++++ b/iothub_client/CMakeLists.txt +@@ -24,22 +24,6 @@ set(install_staticlibs + iothub_client + ) + +-add_library(parson +- ../deps/parson/parson.c +-) +- +-if(MSVC) +- set_source_files_properties(../deps/parson/parson.c PROPERTIES COMPILE_FLAGS "/wd4244 /wd4232") +-endif() +- +-set(install_staticlibs ${install_staticlibs} +- parson +-) +- +-set(iothub_client_libs ${iothub_client_libs} +- parson +-) +- + if(NOT dont_use_uploadtoblob) + set(iothub_client_ll_transport_c_files + ${iothub_client_ll_transport_c_files} +diff --git a/iothub_client/tests/iothubclient_amqp_dt_e2e/CMakeLists.txt b/iothub_client/tests/iothubclient_amqp_dt_e2e/CMakeLists.txt +index 161872a..d53e111 100644 +--- a/iothub_client/tests/iothubclient_amqp_dt_e2e/CMakeLists.txt ++++ b/iothub_client/tests/iothubclient_amqp_dt_e2e/CMakeLists.txt +@@ -31,12 +31,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 + ) + +diff --git a/iothub_client/tests/iothubclient_mqtt_dt_e2e/CMakeLists.txt b/iothub_client/tests/iothubclient_mqtt_dt_e2e/CMakeLists.txt +index d472161..b0291e8 100644 +--- a/iothub_client/tests/iothubclient_mqtt_dt_e2e/CMakeLists.txt ++++ b/iothub_client/tests/iothubclient_mqtt_dt_e2e/CMakeLists.txt +@@ -31,12 +31,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 + ) + +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 +@@ -31,12 +31,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 + ) + +diff --git a/iothub_service_client/CMakeLists.txt b/iothub_service_client/CMakeLists.txt +index 11a9a9a..4097293 100644 +--- a/iothub_service_client/CMakeLists.txt ++++ b/iothub_service_client/CMakeLists.txt +@@ -72,9 +72,7 @@ endif() + setSdkTargetBuildProperties(iothub_service_client) + + if(NOT ${nuget_e2e_tests}) +- target_link_libraries(iothub_service_client uamqp parson) +-else() +- target_link_libraries(iothub_service_client parson) ++ target_link_libraries(iothub_service_client uamqp) + endif() + + if (NOT ${ARCHITECTURE} STREQUAL "ARM") +diff --git a/serializer/CMakeLists.txt b/serializer/CMakeLists.txt +index 0f6dc74..b4f784c 100644 +--- a/serializer/CMakeLists.txt ++++ b/serializer/CMakeLists.txt +@@ -87,10 +87,6 @@ else() + endif() + setSdkTargetBuildProperties(serializer) + +-target_link_libraries(serializer +- parson +-) +- + if (NOT ${skip_samples}) + if(WIN32) + if (NOT ${ARCHITECTURE} STREQUAL "ARM") diff --git a/ports/azure-iot-sdk-c/portfile.cmake b/ports/azure-iot-sdk-c/portfile.cmake new file mode 100644 index 000000000..e4f0d8758 --- /dev/null +++ b/ports/azure-iot-sdk-c/portfile.cmake @@ -0,0 +1,46 @@ +include(vcpkg_common_functions) + +if(VCPKG_LIBRARY_LINKAGE STREQUAL "dynamic") + message("azure-iot-sdk-c only supports static linkage") + set(VCPKG_LIBRARY_LINKAGE "static") +endif() + +vcpkg_from_github( + OUT_SOURCE_PATH SOURCE_PATH + REPO Azure/azure-iot-sdk-c + REF 1.0.0-pre-release-1.0.9 + SHA512 972b5da73399805963031dfacc436665c1a7aaecf4a0035af369d9cf184cb4e7be608b4ca5768902dcfb04f18324c399d095f6543ff3d1da835c40da6e18934e + HEAD_REF master +) + +vcpkg_apply_patches( + SOURCE_PATH ${SOURCE_PATH} + PATCHES + ${CMAKE_CURRENT_LIST_DIR}/improve-external-deps.patch +) + +file(COPY ${CURRENT_INSTALLED_DIR}/share/azure-c-shared-utility/azure_iot_build_rules.cmake DESTINATION ${SOURCE_PATH}/deps/azure-c-shared-utility/configs/) + +string(COMPARE EQUAL "${VCPKG_LIBRARY_LINKAGE}" "dynamic" BUILD_AS_DYNAMIC) + +vcpkg_configure_cmake( + SOURCE_PATH ${SOURCE_PATH} + PREFER_NINJA + OPTIONS + -Dskip_samples=ON + -Duse_installed_dependencies=ON + -Duse_default_uuid=ON + -Dbuild_as_dynamic=${BUILD_AS_DYNAMIC} +) + +vcpkg_install_cmake() + +vcpkg_fixup_cmake_targets(CONFIG_PATH cmake TARGET_PATH share/azure_iot_sdks) + +file(REMOVE_RECURSE ${CURRENT_PACKAGES_DIR}/debug/include ${CURRENT_PACKAGES_DIR}/debug/share) + +file(INSTALL + ${SOURCE_PATH}/LICENSE + DESTINATION ${CURRENT_PACKAGES_DIR}/share/azure-iot-sdk-c RENAME copyright) + +vcpkg_copy_pdbs() diff --git a/ports/azure-uamqp-c/CONTROL b/ports/azure-uamqp-c/CONTROL new file mode 100644 index 000000000..03b4a2402 --- /dev/null +++ b/ports/azure-uamqp-c/CONTROL @@ -0,0 +1,4 @@ +Source: azure-uamqp-c +Version: 1.0.0-pre-release-1.0.9 +Build-Depends: azure-c-shared-utility +Description: AMQP library for C diff --git a/ports/azure-uamqp-c/glob-headers.patch b/ports/azure-uamqp-c/glob-headers.patch new file mode 100644 index 000000000..245744f2b --- /dev/null +++ b/ports/azure-uamqp-c/glob-headers.patch @@ -0,0 +1,14 @@ +diff --git a/CMakeLists.txt b/CMakeLists.txt +index dbf79e5..aec44e5 100644 +--- a/CMakeLists.txt ++++ b/CMakeLists.txt +@@ -74,7 +74,8 @@ if(WIN32) + include_directories($ENV{OpenSSLDir}/include) + endif() + +-set(uamqp_h_files ++file(GLOB uamqp_h_files ++ ./inc/azure_uamqp_c/* + ./inc/azure_uamqp_c/amqp_definitions.h + ./inc/azure_uamqp_c/amqp_frame_codec.h + ./inc/azure_uamqp_c/amqp_management.h diff --git a/ports/azure-uamqp-c/portfile.cmake b/ports/azure-uamqp-c/portfile.cmake new file mode 100644 index 000000000..a4407963c --- /dev/null +++ b/ports/azure-uamqp-c/portfile.cmake @@ -0,0 +1,41 @@ +include(vcpkg_common_functions) + +if(VCPKG_LIBRARY_LINKAGE STREQUAL "dynamic") + message("azure-uamqp-c only supports static linkage") + set(VCPKG_LIBRARY_LINKAGE "static") +endif() + +vcpkg_from_github( + OUT_SOURCE_PATH SOURCE_PATH + REPO Azure/azure-uamqp-c + REF 1.0.0-pre-release-1.0.9 + SHA512 8c7142e0f28779847501941effc8baa0d3411e76bec00a3af0a32f5e25c0ded200d1345fcea58d922d7b0e2b736bc2a57ecaaac23d4de7f97c75a22793cd3750 + HEAD_REF master +) + +vcpkg_apply_patches(SOURCE_PATH ${SOURCE_PATH} PATCHES ${CMAKE_CURRENT_LIST_DIR}/glob-headers.patch) + +file(COPY ${CURRENT_INSTALLED_DIR}/share/azure-c-shared-utility/azure_iot_build_rules.cmake DESTINATION ${SOURCE_PATH}/deps/azure-c-shared-utility/configs/) + +string(COMPARE EQUAL "${VCPKG_LIBRARY_LINKAGE}" "dynamic" BUILD_AS_DYNAMIC) + +vcpkg_configure_cmake( + SOURCE_PATH ${SOURCE_PATH} + PREFER_NINJA + OPTIONS + -Dskip_samples=ON + -Duse_installed_dependencies=ON + -Dbuild_as_dynamic=${BUILD_AS_DYNAMIC} +) + +vcpkg_install_cmake() + +vcpkg_fixup_cmake_targets(CONFIG_PATH cmake TARGET_PATH share/uamqp) + +file(REMOVE_RECURSE ${CURRENT_PACKAGES_DIR}/debug/include ${CURRENT_PACKAGES_DIR}/debug/share) + +file(INSTALL + ${SOURCE_PATH}/LICENSE + DESTINATION ${CURRENT_PACKAGES_DIR}/share/azure-uamqp-c RENAME copyright) + +vcpkg_copy_pdbs() diff --git a/ports/azure-uhttp-c/CONTROL b/ports/azure-uhttp-c/CONTROL new file mode 100644 index 000000000..3711a7dfe --- /dev/null +++ b/ports/azure-uhttp-c/CONTROL @@ -0,0 +1,4 @@ +Source: azure-uhttp-c +Version: 2018-02-09 +Build-Depends: azure-c-shared-utility +Description: Azure HTTP Library written in C diff --git a/ports/azure-uhttp-c/portfile.cmake b/ports/azure-uhttp-c/portfile.cmake new file mode 100644 index 000000000..a04290ec1 --- /dev/null +++ b/ports/azure-uhttp-c/portfile.cmake @@ -0,0 +1,40 @@ +include(vcpkg_common_functions) + +if(VCPKG_LIBRARY_LINKAGE STREQUAL "dynamic") + message("azure-uhttp-c only supports static linkage") + set(VCPKG_LIBRARY_LINKAGE "static") +endif() + +vcpkg_from_github( + OUT_SOURCE_PATH SOURCE_PATH + REPO Azure/azure-uhttp-c + REF 2018-02-09 + SHA512 0668be0f7624d021b6d24e81c21c606ab4a59990eb3d83fea6d2c6cf9ea3f2c6904ad021afcf9645c3c5f2238e9b83146f36522c662b0a2626d928cb4a0218ba + 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/) + +string(COMPARE EQUAL "${VCPKG_LIBRARY_LINKAGE}" "dynamic" BUILD_AS_DYNAMIC) + +vcpkg_configure_cmake( + SOURCE_PATH ${SOURCE_PATH} + PREFER_NINJA + OPTIONS + -Dskip_samples=ON + -Duse_installed_dependencies=ON + -Dbuild_as_dynamic=${BUILD_AS_DYNAMIC} + -DCMAKE_INSTALL_INCLUDEDIR=include +) + +vcpkg_install_cmake() + +vcpkg_fixup_cmake_targets(CONFIG_PATH cmake TARGET_PATH share/uhttp) + +file(REMOVE_RECURSE ${CURRENT_PACKAGES_DIR}/debug/include ${CURRENT_PACKAGES_DIR}/debug/share) + +file(INSTALL + ${SOURCE_PATH}/LICENSE + DESTINATION ${CURRENT_PACKAGES_DIR}/share/azure-uhttp-c RENAME copyright) + +vcpkg_copy_pdbs() diff --git a/ports/azure-umqtt-c/CONTROL b/ports/azure-umqtt-c/CONTROL new file mode 100644 index 000000000..79bd87b79 --- /dev/null +++ b/ports/azure-umqtt-c/CONTROL @@ -0,0 +1,4 @@ +Source: azure-umqtt-c +Version: 1.0.0-pre-release-1.0.9 +Build-Depends: azure-c-shared-utility +Description: General purpose library for communication over the mqtt protocol diff --git a/ports/azure-umqtt-c/portfile.cmake b/ports/azure-umqtt-c/portfile.cmake new file mode 100644 index 000000000..9a9002166 --- /dev/null +++ b/ports/azure-umqtt-c/portfile.cmake @@ -0,0 +1,39 @@ +include(vcpkg_common_functions) + +if(VCPKG_LIBRARY_LINKAGE STREQUAL "dynamic") + message("azure-umqtt-c only supports static linkage") + set(VCPKG_LIBRARY_LINKAGE "static") +endif() + +vcpkg_from_github( + OUT_SOURCE_PATH SOURCE_PATH + REPO Azure/azure-umqtt-c + REF 1.0.0-pre-release-1.0.9 + SHA512 8cabeb431e1b8db64551c0374e80157d9db39011f38db8d3a3dfb77ddf3d6ffed4d6ee0ab697a0af3ce93571fc8a83bb2f3efa52387afe301583151e75f55658 + 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/) + +string(COMPARE EQUAL "${VCPKG_LIBRARY_LINKAGE}" "dynamic" BUILD_AS_DYNAMIC) + +vcpkg_configure_cmake( + SOURCE_PATH ${SOURCE_PATH} + PREFER_NINJA + OPTIONS + -Dskip_samples=ON + -Duse_installed_dependencies=ON + -Dbuild_as_dynamic=${BUILD_AS_DYNAMIC} +) + +vcpkg_install_cmake() + +vcpkg_fixup_cmake_targets(CONFIG_PATH cmake TARGET_PATH share/umqtt) + +file(REMOVE_RECURSE ${CURRENT_PACKAGES_DIR}/debug/include ${CURRENT_PACKAGES_DIR}/debug/share) + +file(INSTALL + ${SOURCE_PATH}/LICENSE + DESTINATION ${CURRENT_PACKAGES_DIR}/share/azure-umqtt-c RENAME copyright) + +vcpkg_copy_pdbs() diff --git a/ports/breakpad/CONTROL b/ports/breakpad/CONTROL index 6b016d29a..76e76668b 100644 --- a/ports/breakpad/CONTROL +++ b/ports/breakpad/CONTROL @@ -1,4 +1,4 @@ Source: breakpad -Version: 2018-03-13 +Version: 2018-03-27 Build-Depends: libdisasm Description: a set of client and server components which implement a crash-reporting system. diff --git a/ports/breakpad/portfile.cmake b/ports/breakpad/portfile.cmake index b8bac3f6a..29cf87498 100644 --- a/ports/breakpad/portfile.cmake +++ b/ports/breakpad/portfile.cmake @@ -3,8 +3,8 @@ include(vcpkg_common_functions) vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO google/breakpad - REF 2d80611fedf1e6bce4459f179dafaac844e9fc7f - SHA512 8c4eabb1e2d071ed67d178c1ee8c3679a24bff39439ee360a079fa926e276247ee18d0d88e420407e08c99cac0d1e9a8b4c7f554bf2d07f125eaa1df2f973e38 + REF e93f852a3c316ad767381d5e5bc839eba5c6225b + SHA512 8139472f4f9ce01770cf2922a52cc63fa009cfff93db893d297f61a1b44198b10bba73c92977e84c18a90ef7e71f0911e4fe9d27e8978fc38f231e499e23fc4d HEAD_REF master ) diff --git a/ports/ceres/CONTROL b/ports/ceres/CONTROL index f2b20f8d3..208082de7 100644 --- a/ports/ceres/CONTROL +++ b/ports/ceres/CONTROL @@ -1,5 +1,5 @@ Source: ceres -Version: 1.13.0-4 +Version: 1.14.0-1 # eigen is always required by CMake, even if it isn't used. Build-Depends: glog, eigen3 Description: non-linear optimization package diff --git a/ports/ceres/portfile.cmake b/ports/ceres/portfile.cmake index 8a2b88a35..7267be402 100644 --- a/ports/ceres/portfile.cmake +++ b/ports/ceres/portfile.cmake @@ -11,8 +11,8 @@ include(vcpkg_common_functions) vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO ceres-solver/ceres-solver - REF 1.13.0 - SHA512 b548a303d1d4eeb75545551c381624879e363a2eba13cdd998fb3bea9bd51f6b9215b579d59d6133117b70d8bf35e18b983400c3d6200403210c18fcb1886ebb + REF 1.14.0 + SHA512 6dddddf5bd5834332a69add468578ad527e4d94fe85c9751ddf5fe9ad11a34918bdd9c994c49dd6ffc398333d0ac9752ac89aaef1293e2fe0a55524e303d415d HEAD_REF master ) @@ -46,6 +46,7 @@ endif() vcpkg_configure_cmake( SOURCE_PATH ${SOURCE_PATH} + PREFER_NINJA OPTIONS -DEXPORT_BUILD_DIR=ON -DBUILD_EXAMPLES=OFF @@ -55,7 +56,7 @@ vcpkg_configure_cmake( -DEIGENSPARSE=${EIGENSPARSE} -DLAPACK=${LAPACK} -DSUITESPARSE=${SUITESPARSE} - -DGFLAGS_PREFER_EXPORTED_GFLAGS_CMAKE_CONFIGURATION=OFF # TheiaSfm doesn't work well with this + -DGFLAGS_PREFER_EXPORTED_GFLAGS_CMAKE_CONFIGURATION=ON -DGLOG_PREFER_EXPORTED_GLOG_CMAKE_CONFIGURATION=OFF # TheiaSfm doesn't work well with this -DMSVC_USE_STATIC_CRT=${MSVC_USE_STATIC_CRT_VALUE} ) diff --git a/ports/clara/CONTROL b/ports/clara/CONTROL index 0825f74e0..878313563 100644 --- a/ports/clara/CONTROL +++ b/ports/clara/CONTROL @@ -1,3 +1,3 @@ Source: clara -Version: 2018-03-11 +Version: 2018-03-23 Description: A simple to use command line parser for C++ \ No newline at end of file diff --git a/ports/clara/portfile.cmake b/ports/clara/portfile.cmake index 377eb932a..3c5108b19 100644 --- a/ports/clara/portfile.cmake +++ b/ports/clara/portfile.cmake @@ -2,8 +2,8 @@ include(vcpkg_common_functions) vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO philsquared/Clara - REF 008c2ae0a52aaa485d6cb830ad54bc6466733298 - SHA512 270c5d8cdc9c833d1a95f1a2737b3db0f537ab92569b5cc1007184b9f7e59f66bbf9ba95313332826814c0b670919b31e27fe797bb3083ac5e55bad6a6051d51 + REF 3ba13ad04a3eebc002320f187475ddcd267288a3 + SHA512 d2e73d2ac70f9ad6428f434b101d413453648708d545a1a71f2363b5847e710412b69fdb9ab100eb437f9419cc4c250ce7ca56cfa9132096be9aa471dcb677d0 HEAD_REF master ) file(INSTALL ${SOURCE_PATH}/single_include/clara.hpp DESTINATION ${CURRENT_PACKAGES_DIR}/include) diff --git a/ports/cryptopp/CONTROL b/ports/cryptopp/CONTROL index 00d14756a..6fea020bd 100644 --- a/ports/cryptopp/CONTROL +++ b/ports/cryptopp/CONTROL @@ -1,3 +1,3 @@ Source: cryptopp -Version: 5.6.5-1 +Version: 6.1.0-2 Description: Crypto++ is a free C++ class library of cryptographic schemes. diff --git a/ports/cryptopp/cmake.patch b/ports/cryptopp/cmake.patch new file mode 100644 index 000000000..fbe725eb9 --- /dev/null +++ b/ports/cryptopp/cmake.patch @@ -0,0 +1,15 @@ +diff --git a/CMakeLists.txt b/CMakeLists.txt +index 5b6e1e6..a0adcf6 100644 +--- a/CMakeLists.txt ++++ b/CMakeLists.txt +@@ -329,6 +329,10 @@ if (CMAKE_CXX_COMPILER_ID STREQUAL "MSVC") + SET( CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} /FI\"winapifamily.h\"" ) + endif () + ++if(WINDOWS_STORE) ++ add_definitions(-DCRYPTOPP_DISABLE_NACL=1) ++endif() ++ + # Enable PIC for all target machines except 32-bit i386 due to register pressures. + if (NOT CRYPTOPP_I386) + SET(CMAKE_POSITION_INDEPENDENT_CODE 1) diff --git a/ports/cryptopp/patch.patch b/ports/cryptopp/patch.patch new file mode 100644 index 000000000..5c49d2757 --- /dev/null +++ b/ports/cryptopp/patch.patch @@ -0,0 +1,12 @@ +diff --git a/config.h b/config.h +index b96b7aa..3f004ac 100644 +--- a/config.h ++++ b/config.h +@@ -795,6 +795,7 @@ NAMESPACE_END + #endif + + #ifdef CRYPTOPP_WIN32_AVAILABLE ++#include + # if !defined(WINAPI_FAMILY) + # define THREAD_TIMER_AVAILABLE + # elif defined(WINAPI_FAMILY) diff --git a/ports/cryptopp/portfile.cmake b/ports/cryptopp/portfile.cmake index 4847c208b..6b4b844c4 100644 --- a/ports/cryptopp/portfile.cmake +++ b/ports/cryptopp/portfile.cmake @@ -3,13 +3,32 @@ if (VCPKG_LIBRARY_LINKAGE STREQUAL dynamic) set(VCPKG_LIBRARY_LINKAGE static) endif() include(vcpkg_common_functions) -set(SOURCE_PATH ${CURRENT_BUILDTREES_DIR}/src/cryptopp-CRYPTOPP_5_6_5) -vcpkg_download_distfile(ARCHIVE - URLS "https://github.com/weidai11/cryptopp/archive/CRYPTOPP_5_6_5.zip" - FILENAME "CRYPTOPP_5_6_5.zip" - SHA512 abca8089e2d587f59c503d2d6412b3128d061784349c735f3ee46be1cb9e3d0d0fed9a9173765fa033eb2dc744e03810de45b8cc2f8ca1672a36e4123648ea44 + +vcpkg_from_github( + OUT_SOURCE_PATH CMAKE_SOURCE_PATH + REPO noloader/cryptopp-cmake + REF aab149932675e4bb777a9d3d6b3f8b8182583fd7 + SHA512 748c77e936888d042bf4a72cc7ee3b7b2ecf16c003cb23296c1af413c9a0cba00cc942ecace26274fc8ac8bd4d848946beb9d7bf2253c5eab3315a4419ef5f1f + HEAD_REF master +) + +vcpkg_from_github( + OUT_SOURCE_PATH SOURCE_PATH + REPO weidai11/cryptopp + REF CRYPTOPP_6_1_0 + SHA512 4bc02fef33f1859a07434a4752c2575afd781056e9a91eed99a13cebe2c91d66cbc7173e34d362da63dad6d38f9594ff291accd27e111232996ccd536bba0f39 + HEAD_REF master +) + +file(COPY ${CMAKE_SOURCE_PATH}/cryptopp-config.cmake DESTINATION ${SOURCE_PATH}) +file(COPY ${CMAKE_SOURCE_PATH}/CMakeLists.txt DESTINATION ${SOURCE_PATH}) + +vcpkg_apply_patches( + SOURCE_PATH "${SOURCE_PATH}" + PATCHES + "${CMAKE_CURRENT_LIST_DIR}/patch.patch" + "${CMAKE_CURRENT_LIST_DIR}/cmake.patch" ) -vcpkg_extract_source_archive(${ARCHIVE}) # Dynamic linking should be avoided for Crypto++ to reduce the attack surface, # so generate a static lib for both dynamic and static vcpkg targets. @@ -19,6 +38,7 @@ vcpkg_extract_source_archive(${ARCHIVE}) vcpkg_configure_cmake( SOURCE_PATH ${SOURCE_PATH} + PREFER_NINJA OPTIONS -DBUILD_SHARED=OFF -DBUILD_STATIC=ON @@ -27,18 +47,10 @@ vcpkg_configure_cmake( ) vcpkg_install_cmake() +vcpkg_fixup_cmake_targets(CONFIG_PATH lib/cmake/cryptopp) # 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) - -# Remove executables -file(REMOVE ${CURRENT_PACKAGES_DIR}/bin/cryptest.exe) -file(REMOVE ${CURRENT_PACKAGES_DIR}/debug/bin/cryptest.exe) - -# Remove other files not required in package -file(REMOVE_RECURSE ${CURRENT_PACKAGES_DIR}/lib/cmake) -file(REMOVE_RECURSE ${CURRENT_PACKAGES_DIR}/debug/lib/cmake) # Handle copyright file(COPY ${SOURCE_PATH}/License.txt DESTINATION ${CURRENT_PACKAGES_DIR}/share/cryptopp) diff --git a/ports/discord-rpc/CONTROL b/ports/discord-rpc/CONTROL index 218257e6a..609460036 100644 --- a/ports/discord-rpc/CONTROL +++ b/ports/discord-rpc/CONTROL @@ -1,3 +1,3 @@ Source: discord-rpc -Version: 3.0.0 +Version: 3.1.0 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. diff --git a/ports/discord-rpc/portfile.cmake b/ports/discord-rpc/portfile.cmake index 88a5fc976..72709ed7c 100644 --- a/ports/discord-rpc/portfile.cmake +++ b/ports/discord-rpc/portfile.cmake @@ -3,8 +3,8 @@ include(vcpkg_common_functions) vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO discordapp/discord-rpc - REF v3.0.0 - SHA512 d14ae2b33d832c456621fd0abb137450ae9d7eedf2a3d343a82f2b609da3946e501a9d8016f62b3dd0219a0eaf3c47f82d6023960608d670632939e0b35e8167 + REF v3.1.0 + SHA512 f467ac6428588b45a90eaec0786b7f0d799b5ee9e97528dd69cd1890fb4dd9c887807e845a0a1d75e19e6e1f6cb2d21c8a77d09e95f24d8df0aae04eae17a216 HEAD_REF master ) diff --git a/ports/dlib/CONTROL b/ports/dlib/CONTROL index d711849f0..c4d5fe905 100644 --- a/ports/dlib/CONTROL +++ b/ports/dlib/CONTROL @@ -1,5 +1,5 @@ Source: dlib -Version: 19.9-1 +Version: 19.10-1 Build-Depends: libjpeg-turbo, libpng, sqlite3, fftw3, openblas, clapack Description: Modern C++ toolkit containing machine learning algorithms and tools for creating complex software in C++ diff --git a/ports/dlib/portfile.cmake b/ports/dlib/portfile.cmake index cf3ae4079..da77c9374 100644 --- a/ports/dlib/portfile.cmake +++ b/ports/dlib/portfile.cmake @@ -1,10 +1,15 @@ include(vcpkg_common_functions) +if(VCPKG_LIBRARY_LINKAGE STREQUAL "dynamic") + message("dlib only supports static linkage") + set(VCPKG_LIBRARY_LINKAGE "static") +endif() + vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO davisking/dlib - REF v19.9 - SHA512 1e2123c22e1b13cc84108fa627bfa92eadc9dee63f93a9f45676bbf2b752c8728117d915ac327f5223b0cdbce87dd3bef2f4d8d5ed3f8f5a314ffa9e8962a246 + REF v19.10 + SHA512 88c5b41c12219e6166c6621b654b3869ca4a2af777a8fa55429b833b90b048e3e74ea7ad752d7440809b8171bbd38090cb24a29770391fc3a9d53f9a5fba3341 HEAD_REF master ) diff --git a/ports/exiv2/CONTROL b/ports/exiv2/CONTROL index 5fd6dae7f..0f4ddb750 100644 --- a/ports/exiv2/CONTROL +++ b/ports/exiv2/CONTROL @@ -1,4 +1,4 @@ Source: exiv2 -Version: 2018-03-20 +Version: 2018-03-29 Build-Depends: zlib, expat, libiconv Description: Image metadata library and tools http://www.exiv2.org diff --git a/ports/exiv2/portfile.cmake b/ports/exiv2/portfile.cmake index 3f2440356..f68070eea 100644 --- a/ports/exiv2/portfile.cmake +++ b/ports/exiv2/portfile.cmake @@ -3,8 +3,8 @@ include(vcpkg_common_functions) vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO Exiv2/exiv2 - REF 59b148aee9402426e4d4cd7db5be6fa5966a68b5 - SHA512 6e7444d26594cd28d0a421b94ce8dc24b8b65cff3112014931a528235578f5cbbb9b945dff61af1d39fed97ab091aa6c5ebab6c662aada93ca5a9b0316f714f0 + REF 8b7941b7332a3299b3b6061e93f352ef66440666 + SHA512 743a9792753915334e86c55112ef876bf0353924b85b0bf33ffb8217606ecb57954eec2d0e904f6e9fd9ea435b96f035bea793cb5040f54169eea0ba0c2fd7e3 HEAD_REF master ) diff --git a/ports/ffmpeg/CONTROL b/ports/ffmpeg/CONTROL index 2f635cc10..7688f67f9 100644 --- a/ports/ffmpeg/CONTROL +++ b/ports/ffmpeg/CONTROL @@ -1,5 +1,5 @@ Source: ffmpeg -Version: 3.3.3-4 +Version: 3.3.3-5 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. diff --git a/ports/folly/CONTROL b/ports/folly/CONTROL index 8f0bb7656..457874906 100644 --- a/ports/folly/CONTROL +++ b/ports/folly/CONTROL @@ -1,4 +1,29 @@ Source: folly -Version: 2017.11.27.00-3 +Version: 2018.03.19.00-1 Description: An open-source C++ library developed and used at Facebook. The library is UNSTABLE on Windows -Build-Depends: zlib, openssl, libevent, double-conversion, glog, gflags, lz4, liblzma, snappy, boost-context, boost-chrono, boost-date-time, boost-filesystem, boost-program-options, boost-regex, boost-system, boost-thread, boost-conversion, boost-multi-index, boost-crc +Build-Depends: openssl, libevent, double-conversion, glog, gflags, boost-chrono, boost-context, boost-conversion, boost-crc, boost-date-time, boost-filesystem, boost-multi-index, boost-program-options, boost-regex, boost-system, boost-thread +Default-Features: zlib + +Feature: zlib +Build-Depends: zlib +Description: Support zlib for compression + +Feature: bzip2 +Build-Depends: bzip2 +Description: Support bzip2 for compression + +Feature: lzma +Build-Depends: liblzma +Description: Support LZMA for compression + +Feature: zstd +Build-Depends: zstd +Description: Support zstd for compression + +Feature: snappy +Build-Depends: snappy +Description: Support Snappy for compression + +Feature: lz4 +Build-Depends: lz4 +Description: Support lz4 for compression diff --git a/ports/folly/FindLZ4.cmake b/ports/folly/FindLZ4.cmake new file mode 100644 index 000000000..bf3140e15 --- /dev/null +++ b/ports/folly/FindLZ4.cmake @@ -0,0 +1,12 @@ +find_path(LZ4_INCLUDE_DIR lz4.h) + +find_package(LZ4_LIBRARY_DEBUG NAMES lz4d) +find_package(LZ4_LIBRARY_RELEASE NAMES lz4) + +select_library_configurations(LZ4_LIBRARY) + +include(FindPackageHandleStandardArgs) +FIND_PACKAGE_HANDLE_STANDARD_ARGS( + LZ4 DEFAULT_MSG + LZ4_LIBRARY LZ4_INCLUDE_DIR +) diff --git a/ports/folly/FindSnappy.cmake b/ports/folly/FindSnappy.cmake new file mode 100644 index 000000000..e8916d6e0 --- /dev/null +++ b/ports/folly/FindSnappy.cmake @@ -0,0 +1,12 @@ +find_path(SNAPPY_INCLUDE_DIR snappy.h) + +find_package(SNAPPY_LIBRARY_DEBUG NAMES snappyd) +find_package(SNAPPY_LIBRARY_RELEASE NAMES snappy) + +select_library_configurations(SNAPPY_LIBRARY) + +include(FindPackageHandleStandardArgs) +FIND_PACKAGE_HANDLE_STANDARD_ARGS( + SNAPPY DEFAULT_MSG + SNAPPY_LIBRARY SNAPPY_INCLUDE_DIR +) diff --git a/ports/folly/cmake-link-boost-fix.patch b/ports/folly/cmake-link-boost-fix.patch deleted file mode 100644 index d3baf13a3..000000000 --- a/ports/folly/cmake-link-boost-fix.patch +++ /dev/null @@ -1,35 +0,0 @@ -diff --git a/CMakeLists.txt b/CMakeLists.txt -index ec5a985c..36564534 100644 ---- a/CMakeLists.txt -+++ b/CMakeLists.txt -@@ -136,13 +136,6 @@ source_group("folly\\build" FILES - ) - - set(FOLLY_SHINY_DEPENDENCIES -- Boost::chrono -- Boost::context -- Boost::date_time -- Boost::filesystem -- Boost::program_options -- Boost::regex -- Boost::system - OpenSSL::SSL - OpenSSL::Crypto - ) -@@ -179,6 +172,7 @@ endif() - - set(FOLLY_LINK_LIBRARIES - ${FOLLY_LINK_LIBRARIES} -+ ${Boost_LIBRARIES} - Iphlpapi.lib - Ws2_32.lib - -@@ -320,7 +314,7 @@ if (BUILD_TESTS) - ) - target_link_libraries(folly_test_support - PUBLIC -- Boost::thread -+ ${Boost_LIBRARIES} - folly - ${LIBGMOCK_LIBRARY} - ) diff --git a/ports/folly/portfile.cmake b/ports/folly/portfile.cmake index 00c1093da..ce101d918 100644 --- a/ports/folly/portfile.cmake +++ b/ports/folly/portfile.cmake @@ -17,45 +17,66 @@ set(ENV{PATH} "$ENV{PATH};${PYTHON3_DIR}") vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO facebook/folly - REF v2017.11.27.00 - SHA512 738bb00047a7cbd807f2dccd64031763df80bbebca73f1ae9500b750dcad156dde84e47f4eda7af1bcd7abfae10c973da47515f2e111929979d1637869cf06ee + REF v2018.03.19.00 + SHA512 72df8768753bf9f1109ad3f16645d811906b633833c91c7d9fe856a06c16b5e398876cf6cae415401eff96b568c99ffa1dc0c44d81cd40219bafb0f4c72fc2ca HEAD_REF master ) vcpkg_apply_patches( SOURCE_PATH ${SOURCE_PATH} PATCHES - ${CMAKE_CURRENT_LIST_DIR}/cmake-link-boost-fix.patch ${CMAKE_CURRENT_LIST_DIR}/msvc-15.6-workaround.patch ) +file(COPY + ${CMAKE_CURRENT_LIST_DIR}/FindLZ4.cmake + ${CMAKE_CURRENT_LIST_DIR}/FindSnappy.cmake + DESTINATION ${SOURCE_PATH}/CMake/ +) + if(VCPKG_CRT_LINKAGE STREQUAL static) set(MSVC_USE_STATIC_RUNTIME ON) else() set(MSVC_USE_STATIC_RUNTIME OFF) endif() +set(FEATURE_OPTIONS) + +macro(feature FEATURENAME PACKAGENAME) + if("${FEATURENAME}" IN_LIST FEATURES) + list(APPEND FEATURE_OPTIONS -DCMAKE_DISABLE_FIND_PACKAGE_${PACKAGENAME}=OFF) + else() + list(APPEND FEATURE_OPTIONS -DCMAKE_DISABLE_FIND_PACKAGE_${PACKAGENAME}=ON) + endif() +endmacro() + +feature(zlib ZLIB) +feature(bzip2 BZip2) +feature(lzma LibLZMA) +feature(lz4 LZ4) +feature(zstd Zstd) +feature(snappy Snappy) + vcpkg_configure_cmake( SOURCE_PATH ${SOURCE_PATH} PREFER_NINJA OPTIONS -DMSVC_USE_STATIC_RUNTIME=${MSVC_USE_STATIC_RUNTIME} + -DCMAKE_DISABLE_FIND_PACKAGE_LibDwarf=ON + -DCMAKE_DISABLE_FIND_PACKAGE_Libiberty=ON + -DCMAKE_DISABLE_FIND_PACKAGE_LibAIO=ON + -DLIBAIO_FOUND=OFF + -DLIBURCU_FOUND=OFF + -DCMAKE_DISABLE_FIND_PACKAGE_LibURCU=ON + ${FEATURE_OPTIONS} ) -# Folly runs built executables during the build, so they need access to the installed DLLs. -set(ENV{PATH} "$ENV{PATH};${CURRENT_INSTALLED_DIR}/bin;${CURRENT_INSTALLED_DIR}/debug/bin") - -vcpkg_install_cmake() +vcpkg_install_cmake(ADD_BIN_TO_PATH) vcpkg_copy_pdbs() vcpkg_fixup_cmake_targets() -# changes target search path -file(READ ${CURRENT_PACKAGES_DIR}/share/folly/folly-targets.cmake FOLLY_MODULE) -string(REPLACE "${CURRENT_INSTALLED_DIR}/lib/" "" FOLLY_MODULE "${FOLLY_MODULE}") -file(WRITE ${CURRENT_PACKAGES_DIR}/share/folly/folly-targets.cmake "${FOLLY_MODULE}") - file(REMOVE_RECURSE ${CURRENT_PACKAGES_DIR}/debug/include) # Handle copyright diff --git a/ports/harfbuzz/CONTROL b/ports/harfbuzz/CONTROL index f03f52187..e6cf6a8e5 100644 --- a/ports/harfbuzz/CONTROL +++ b/ports/harfbuzz/CONTROL @@ -1,4 +1,4 @@ Source: harfbuzz -Version: 1.7.6 +Version: 1.7.6-1 Description: HarfBuzz OpenType text shaping engine Build-Depends: freetype, ragel, glib (windows) diff --git a/ports/harfbuzz/find-package-freetype.patch b/ports/harfbuzz/find-package-freetype-2.patch similarity index 74% rename from ports/harfbuzz/find-package-freetype.patch rename to ports/harfbuzz/find-package-freetype-2.patch index a556d1377..85dbbdeec 100644 --- a/ports/harfbuzz/find-package-freetype.patch +++ b/ports/harfbuzz/find-package-freetype-2.patch @@ -1,13 +1,13 @@ -diff --git a/CMakeLists.txt b/CMakeLists.txt -index 24ccb6f..21df836 100644 ---- a/CMakeLists.txt -+++ b/CMakeLists.txt -@@ -201,7 +201,7 @@ set(project_headers - ## Find and include needed header folders and libraries - if (HB_HAVE_FREETYPE) - -- include(FindFreetype) -+ find_package(Freetype REQUIRED) - if (NOT FREETYPE_FOUND) - message(FATAL_ERROR "HB_HAVE_FREETYPE was set, but we failed to find it. Maybe add a CMAKE_PREFIX_PATH= to your Freetype2 install prefix") - endif() +diff --git a/CMakeLists.txt b/CMakeLists.txt +index defd5d6..03f9d4e 100644 +--- a/CMakeLists.txt ++++ b/CMakeLists.txt +@@ -267,7 +267,7 @@ set (subset_project_headers + + ## Find and include needed header folders and libraries + if (HB_HAVE_FREETYPE) +- include (FindFreetype) ++ find_package(Freetype REQUIRED) + if (NOT FREETYPE_FOUND) + message(FATAL_ERROR "HB_HAVE_FREETYPE was set, but we failed to find it. Maybe add a CMAKE_PREFIX_PATH= to your Freetype2 install prefix") + endif () diff --git a/ports/harfbuzz/portfile.cmake b/ports/harfbuzz/portfile.cmake index b1c91aa91..906e42d95 100644 --- a/ports/harfbuzz/portfile.cmake +++ b/ports/harfbuzz/portfile.cmake @@ -12,10 +12,10 @@ vcpkg_apply_patches( SOURCE_PATH ${SOURCE_PATH} PATCHES "${CMAKE_CURRENT_LIST_DIR}/0001-fix-uwp-build.patch" - "${CMAKE_CURRENT_LIST_DIR}/find-package-freetype.patch" + "${CMAKE_CURRENT_LIST_DIR}/find-package-freetype-2.patch" ) -if(VCPKG_TARGET_ARCHITECTURE STREQUAL "arm" OR VCPKG_CMAKE_SYSTEM_NAME STREQUAL "WindowsStore") +if(VCPKG_TARGET_ARCHITECTURE STREQUAL "arm" OR VCPKG_CMAKE_SYSTEM_NAME) SET(HAVE_GLIB "OFF") SET(BUILTIN_UCDN "ON") else() diff --git a/ports/hpx/CONTROL b/ports/hpx/CONTROL index 471b64986..ff6801a42 100644 --- a/ports/hpx/CONTROL +++ b/ports/hpx/CONTROL @@ -1,5 +1,5 @@ -Source: hpx -Version: 1.0.0-8 -Build-Depends: hwloc, boost-chrono, boost-date-time, boost-filesystem, boost-program-options, boost-regex, boost-system, boost-thread, boost-context, boost-iostreams, boost-random, boost-atomic, boost-asio, boost-dynamic-bitset, boost-assign, boost-format, boost-signals2, boost-parameter, boost-bimap, boost-accumulators, boost-lockfree, boost-icl -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. +Source: hpx +Version: 1.1.0-1 +Build-Depends: hwloc, boost-accumulators, boost-algorithm, boost-asio, boost-assign, boost-atomic, boost-bimap, boost-chrono, boost-config, boost-context, boost-date-time, boost-dynamic-bitset, boost-exception, boost-filesystem, boost-format, boost-iostreams, boost-lockfree, boost-parameter, boost-program-options, boost-range, boost-regex, boost-signals2, boost-smart-ptr, boost-spirit, boost-system, boost-thread, boost-throw-exception, boost-variant, boost-winapi +Description: The C++ Standards Library for Concurrency and Parallelism + HPX is a C++ Standards Library for Concurrency and Parallelism. It implements all of the corresponding facilities as defined by the C++ Standard. Additionally, in HPX we implement functionalities proposed as part of the ongoing C++ standardization process. We also extend the C++ Standard APIs to the distributed case. diff --git a/ports/hpx/boost-1-66.patch b/ports/hpx/boost-1-66.patch deleted file mode 100644 index 6f98a48aa..000000000 --- a/ports/hpx/boost-1-66.patch +++ /dev/null @@ -1,38 +0,0 @@ -diff --git a/src/util/asio_util.cpp b/src/util/asio_util.cpp -index e2207de..48a35b9 100644 ---- a/src/util/asio_util.cpp -+++ b/src/util/asio_util.cpp -@@ -231,7 +231,7 @@ namespace hpx { namespace util - tcp::endpoint ep; - if (util::get_endpoint(address, port, ep)) - { -- return endpoint_iterator_type(tcp::resolver::iterator::create( -+ return endpoint_iterator_type(tcp::resolver::results_type::create( - ep, address, port_str)); - } - } -@@ -283,7 +283,7 @@ namespace hpx { namespace util - if (util::get_endpoint(address, port, ep)) - { - return endpoint_iterator_type( -- tcp::resolver::iterator::create(ep, address, port_str)); -+ tcp::resolver::results_type::create(ep, address, port_str)); - } - } - catch (boost::system::system_error const&) { -diff --git a/src/util/serialize_exception.cpp b/src/util/serialize_exception.cpp -index 935e575..22bcf37 100644 ---- a/src/util/serialize_exception.cpp -+++ b/src/util/serialize_exception.cpp -@@ -341,11 +341,7 @@ namespace hpx { namespace serialization - case hpx::util::boost_system_error: - e = hpx::detail::construct_exception( - boost::system::system_error(err_value, --#ifndef BOOST_SYSTEM_NO_DEPRECATED -- boost::system::get_system_category() --#else - boost::system::system_category() --#endif - , err_message - ) - , throw_function_, throw_file_, throw_line_, throw_back_trace_, diff --git a/ports/hpx/portfile.cmake b/ports/hpx/portfile.cmake index e03d566e8..c200a6278 100644 --- a/ports/hpx/portfile.cmake +++ b/ports/hpx/portfile.cmake @@ -1,119 +1,94 @@ -include(vcpkg_common_functions) - -if (VCPKG_LIBRARY_LINKAGE STREQUAL static) - message(STATUS "Warning: Static building of HPX not supported yet. Building dynamic.") - set(VCPKG_LIBRARY_LINKAGE dynamic) -endif() - -vcpkg_from_github( - OUT_SOURCE_PATH SOURCE_PATH - REPO STEllAR-GROUP/hpx - REF 1.0.0 - SHA512 1bb985ad8ab031a7ac034d4597a8bd26eae83fba5aed207c444211954079e10e2d5d83965a1f4ce52d1b29ecc72586c561b984c2c628673a262c07214fd1abb5 - HEAD_REF master -) - -if(NOT VCPKG_USE_HEAD_VERSION) - # apply hotfix to enable building with vcpkg - vcpkg_download_distfile(DIFF1 - URLS "http://stellar-group.org/files/hpx-Build-system-changes-to-make-HPX-compile-when-built-with-vcpkg.diff" - FILENAME "hpx-Build-system-changes-to-make-HPX-compile-when-built-with-vcpkg.diff" - SHA512 86df311a120686139955e1c0fdca55379594be3fa8d46d69ee59d83da351ce3bed487ab946c80f7127aab9699e470e24e545b112f92be9f971f41d95c429d01d - ) - - # apply hotfix to fix issues with building 32bit version - vcpkg_download_distfile(DIFF2 - URLS "http://stellar-group.org/files/hpx-Fixing-32bit-MSVC-compilation.diff" - FILENAME "hpx-Fixing-32bit-MSVC-compilation.diff" - SHA512 31c904d317b4c24eddd819e4856f8326ff3850a5a196c7648c46a11dbb85f35e972e077957b3c4aec67c8b043816fe1cebc92cfe28ed815f682537dfc3421b8b - ) - - # apply hotfix to fix issues when building with UNICODE enabled - vcpkg_download_distfile(DIFF3 - URLS "http://stellar-group.org/files/hpx-Making-sure-UNICODE-on-Windows-does-not-break-by-default.diff" - FILENAME "hpx-Making-sure-UNICODE-on-Windows-does-not-break-by-default.diff" - SHA512 8fcdb36307702d64b9d2b26920374a6c5a29a50d125305dc95926c4cbc91215cb0c72ede83b06d0fc007fe7b2283845e08351bd45f11f3677f0d3db4ac8f9424 - ) - - vcpkg_apply_patches( - SOURCE_PATH ${SOURCE_PATH} - PATCHES - ${DIFF1} - ${DIFF2} - ${DIFF3} - ${CMAKE_CURRENT_LIST_DIR}/boost-1-66.patch - ) -endif() - -SET(BOOST_PATH "${CURRENT_INSTALLED_DIR}/share/boost") -SET(HWLOC_PATH "${CURRENT_INSTALLED_DIR}/share/hwloc") - -vcpkg_configure_cmake( - SOURCE_PATH ${SOURCE_PATH} - PREFER_NINJA - OPTIONS - -DBOOST_ROOT=${BOOST_PATH} - -DHWLOC_ROOT=${HWLOC_ROOT} - -DHPX_WITH_VCPKG=ON - -DHPX_WITH_HWLOC=ON - -DHPX_WITH_TESTS=OFF - -DHPX_WITH_EXAMPLES=OFF - -DHPX_WITH_TOOLS=OFF - -DHPX_WITH_RUNTIME=OFF -) - -vcpkg_install_cmake() - -# post build cleanup -if(NOT VCPKG_USE_HEAD_VERSION) - file(RENAME ${CURRENT_PACKAGES_DIR}/share/hpx-1.0.0 ${CURRENT_PACKAGES_DIR}/share/hpx) -else() - file(RENAME ${CURRENT_PACKAGES_DIR}/share/hpx-1.1.0 ${CURRENT_PACKAGES_DIR}/share/hpx) -endif() - -file(INSTALL - ${SOURCE_PATH}/LICENSE_1_0.txt - DESTINATION ${CURRENT_PACKAGES_DIR}/share/hpx RENAME copyright) - -file(GLOB __hpx_cmakes ${CURRENT_PACKAGES_DIR}/lib/cmake/HPX/*.*) -foreach(__hpx_cmake ${__hpx_cmakes}) - file(COPY ${__hpx_cmake} DESTINATION ${CURRENT_PACKAGES_DIR}/share/hpx/cmake) - file(REMOVE ${__hpx_cmake}) -endforeach() - -file(GLOB __hpx_dlls ${CURRENT_PACKAGES_DIR}/lib/*.dll) -foreach(__hpx_dll ${__hpx_dlls}) - file(COPY ${__hpx_dll} DESTINATION ${CURRENT_PACKAGES_DIR}/bin) - file(REMOVE ${__hpx_dll}) -endforeach() - -file(GLOB __hpx_dlls ${CURRENT_PACKAGES_DIR}/lib/hpx/*.dll) -foreach(__hpx_dll ${__hpx_dlls}) - file(COPY ${__hpx_dll} DESTINATION ${CURRENT_PACKAGES_DIR}/bin/hpx) - file(REMOVE ${__hpx_dll}) -endforeach() - -file(GLOB __hpx_dlls ${CURRENT_PACKAGES_DIR}/debug/lib/*.dll) -foreach(__hpx_dll ${__hpx_dlls}) - file(COPY ${__hpx_dll} DESTINATION ${CURRENT_PACKAGES_DIR}/debug/bin) - file(REMOVE ${__hpx_dll}) -endforeach() - -file(GLOB __hpx_dlls ${CURRENT_PACKAGES_DIR}/debug/lib/hpx/*.dll) -foreach(__hpx_dll ${__hpx_dlls}) - file(COPY ${__hpx_dll} DESTINATION ${CURRENT_PACKAGES_DIR}/debug/bin/hpx) - file(REMOVE ${__hpx_dll}) -endforeach() - -file(REMOVE_RECURSE ${CURRENT_PACKAGES_DIR}/lib/bazel) -file(REMOVE_RECURSE ${CURRENT_PACKAGES_DIR}/lib/cmake) -file(REMOVE_RECURSE ${CURRENT_PACKAGES_DIR}/lib/pkgconfig) - -file(REMOVE_RECURSE ${CURRENT_PACKAGES_DIR}/debug/include) -file(REMOVE_RECURSE ${CURRENT_PACKAGES_DIR}/debug/share) -file(REMOVE_RECURSE ${CURRENT_PACKAGES_DIR}/debug/lib/bazel) -file(REMOVE_RECURSE ${CURRENT_PACKAGES_DIR}/debug/lib/cmake) -file(REMOVE_RECURSE ${CURRENT_PACKAGES_DIR}/debug/lib/pkgconfig) - -vcpkg_copy_pdbs() - +include(vcpkg_common_functions) + +if (VCPKG_LIBRARY_LINKAGE STREQUAL static) + message(STATUS "Warning: Static building of HPX not supported yet. Building dynamic.") + set(VCPKG_LIBRARY_LINKAGE dynamic) +endif() + +vcpkg_from_github( + OUT_SOURCE_PATH SOURCE_PATH + REPO STEllAR-GROUP/hpx + REF 1.1.0 + SHA512 435250143ddbd2608995fe3dc5c229a096312d7ac930925ae56d0abd2d5689886126f6e81bc7e37b84ca9bc99f951ef1f39580168a359c48788ac8d008bc7078 + HEAD_REF master +) + +vcpkg_configure_cmake( + SOURCE_PATH ${SOURCE_PATH} + PREFER_NINJA + OPTIONS + "-DBOOST_ROOT=${CURRENT_INSTALLED_DIR}/share/boost" + "-DHWLOC_ROOT=${CURRENT_INSTALLED_DIR}/share/hwloc" + -DHPX_WITH_VCPKG=ON + -DHPX_WITH_HWLOC=ON + -DHPX_WITH_TESTS=OFF + -DHPX_WITH_EXAMPLES=OFF + -DHPX_WITH_TOOLS=OFF + -DHPX_WITH_RUNTIME=OFF +) + +vcpkg_install_cmake() + +# post build cleanup +file(GLOB SHARE_DIR ${CURRENT_PACKAGES_DIR}/share/hpx-*) +file(RENAME ${SHARE_DIR} ${CURRENT_PACKAGES_DIR}/share/hpx) + +vcpkg_fixup_cmake_targets(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/\\1" + _contents "${_contents}") + file(WRITE ${CMAKE_FILE} "${_contents}") +endforeach() + +file(READ "${CURRENT_PACKAGES_DIR}/share/hpx/HPXMacros.cmake" _contents) +string(REPLACE "set(CMAKE_MODULE_PATH \${CMAKE_MODULE_PATH} \"\${CMAKE_CURRENT_LIST_DIR}/../../lib/cmake/HPX\")" "list(APPEND CMAKE_MODULE_PATH \"\${CMAKE_CURRENT_LIST_DIR}\")" _contents "${_contents}") +file(WRITE "${CURRENT_PACKAGES_DIR}/share/hpx/HPXMacros.cmake" "${_contents}") + +file(INSTALL + ${SOURCE_PATH}/LICENSE_1_0.txt + DESTINATION ${CURRENT_PACKAGES_DIR}/share/hpx RENAME copyright) + +file(GLOB DLLS ${CURRENT_PACKAGES_DIR}/lib/*.dll) +if(DLLS) + file(COPY ${DLLS} DESTINATION ${CURRENT_PACKAGES_DIR}/bin) + file(REMOVE ${DLLS}) +endif() + +file(GLOB DLLS ${CURRENT_PACKAGES_DIR}/lib/hpx/*.dll) +if(DLLS) + file(COPY ${DLLS} DESTINATION ${CURRENT_PACKAGES_DIR}/bin) + file(REMOVE ${DLLS}) +endif() + +file(GLOB DLLS ${CURRENT_PACKAGES_DIR}/debug/lib/*.dll) +if(DLLS) + file(COPY ${DLLS} DESTINATION ${CURRENT_PACKAGES_DIR}/debug/bin) + file(REMOVE ${DLLS}) +endif() + +file(GLOB DLLS ${CURRENT_PACKAGES_DIR}/debug/lib/hpx/*.dll) +if(DLLS) + file(COPY ${DLLS} DESTINATION ${CURRENT_PACKAGES_DIR}/debug/bin) + file(REMOVE ${DLLS}) +endif() + +file(REMOVE_RECURSE ${CURRENT_PACKAGES_DIR}/lib/bazel) +file(REMOVE_RECURSE ${CURRENT_PACKAGES_DIR}/lib/cmake) +file(REMOVE_RECURSE ${CURRENT_PACKAGES_DIR}/lib/pkgconfig) + +file(REMOVE_RECURSE ${CURRENT_PACKAGES_DIR}/debug/include) +file(REMOVE_RECURSE ${CURRENT_PACKAGES_DIR}/debug/share) +file(REMOVE_RECURSE ${CURRENT_PACKAGES_DIR}/debug/lib/bazel) +file(REMOVE_RECURSE ${CURRENT_PACKAGES_DIR}/debug/lib/cmake) +file(REMOVE_RECURSE ${CURRENT_PACKAGES_DIR}/debug/lib/pkgconfig) + +vcpkg_copy_pdbs() diff --git a/ports/lcm/CONTROL b/ports/lcm/CONTROL index e6b9803fe..0cca68404 100644 --- a/ports/lcm/CONTROL +++ b/ports/lcm/CONTROL @@ -1,5 +1,5 @@ Source: lcm -Version: 1.3.95 +Version: 1.3.95-1 Build-Depends: glib 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. diff --git a/ports/lcm/only-install-one-flavor.patch b/ports/lcm/only-install-one-flavor.patch new file mode 100644 index 000000000..d22b83c23 --- /dev/null +++ b/ports/lcm/only-install-one-flavor.patch @@ -0,0 +1,19 @@ +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} diff --git a/ports/lcm/portfile.cmake b/ports/lcm/portfile.cmake index 98f34e2ca..b50139f62 100644 --- a/ports/lcm/portfile.cmake +++ b/ports/lcm/portfile.cmake @@ -8,15 +8,24 @@ vcpkg_from_github( HEAD_REF master ) +vcpkg_apply_patches( + SOURCE_PATH ${SOURCE_PATH} + PATCHES ${CMAKE_CURRENT_LIST_DIR}/only-install-one-flavor.patch +) + vcpkg_configure_cmake( SOURCE_PATH ${SOURCE_PATH} PREFER_NINJA OPTIONS + -DLCM_ENABLE_JAVA=OFF + -DLCM_ENABLE_LUA=OFF + -DLCM_ENABLE_PYTHON=OFF -DLCM_ENABLE_TESTS=OFF + -DLCM_INSTALL_M4MACROS=OFF + -DLCM_INSTALL_PKGCONFIG=OFF ) vcpkg_install_cmake() -vcpkg_copy_pdbs() vcpkg_fixup_cmake_targets(CONFIG_PATH cmake) file(REMOVE_RECURSE ${CURRENT_PACKAGES_DIR}/debug/include) @@ -25,9 +34,22 @@ file(REMOVE_RECURSE ${CURRENT_PACKAGES_DIR}/share/aclocal) file(REMOVE_RECURSE ${CURRENT_PACKAGES_DIR}/share/java) file(REMOVE_RECURSE ${CURRENT_PACKAGES_DIR}/share/man) -file(COPY ${CURRENT_PACKAGES_DIR}/bin/lcm-gen.exe DESTINATION ${CURRENT_PACKAGES_DIR}/tools/lcm) +file(GLOB EXES ${CURRENT_PACKAGES_DIR}/bin/*.exe) +if(EXES) + file(COPY ${EXES} DESTINATION ${CURRENT_PACKAGES_DIR}/tools/lcm) + file(REMOVE ${EXES}) +endif() +file(GLOB DEBUG_EXES ${CURRENT_PACKAGES_DIR}/debug/bin/*.exe) +if(DEBUG_EXES) + file(REMOVE ${DEBUG_EXES}) +endif() + +if(VCPKG_LIBRARY_LINKAGE STREQUAL "static") + file(REMOVE_RECURSE ${CURRENT_PACKAGES_DIR}/bin ${CURRENT_PACKAGES_DIR}/debug/bin) +endif() + vcpkg_copy_tool_dependencies(${CURRENT_PACKAGES_DIR}/tools/lcm) -file(REMOVE_RECURSE ${CURRENT_PACKAGES_DIR}/debug/bin) -file(REMOVE_RECURSE ${CURRENT_PACKAGES_DIR}/bin) file(INSTALL ${SOURCE_PATH}/COPYING DESTINATION ${CURRENT_PACKAGES_DIR}/share/lcm RENAME copyright) + +vcpkg_copy_pdbs() diff --git a/ports/libpq/CMakeLists.txt b/ports/libpq/CMakeLists.txt index 35a67118a..57b86e255 100644 --- a/ports/libpq/CMakeLists.txt +++ b/ports/libpq/CMakeLists.txt @@ -1,41 +1,98 @@ cmake_minimum_required(VERSION 3.5) project(libpq VERSION 9.6.1 LANGUAGES C) +if(NOT CMAKE_SYSTEM_PROCESSOR) + set(CMAKE_SYSTEM_PROCESSOR ${CMAKE_HOST_SYSTEM_PROCESSOR}) +endif() + find_package(OpenSSL REQUIRED) +find_program(PERL NAMES perl) + +set(CMAKE_STATIC_LIBRARY_PREFIX) +set(CMAKE_SHARED_LIBRARY_PREFIX) set(CMAKE_DEBUG_POSTFIX "d") -configure_file(${CMAKE_CURRENT_LIST_DIR}/src/include/pg_config.h.win32 ${CMAKE_CURRENT_BINARY_DIR}/include/pg_config.h) -configure_file(${CMAKE_CURRENT_LIST_DIR}/src/include/pg_config_ext.h.win32 ${CMAKE_CURRENT_BINARY_DIR}/include/pg_config_ext.h) -configure_file(${CMAKE_CURRENT_LIST_DIR}/src/include/port/win32.h ${CMAKE_CURRENT_BINARY_DIR}/include/pg_config_os.h) + +file(REMOVE + ${CMAKE_CURRENT_SOURCE_DIR}/src/include/pg_config.h + ${CMAKE_CURRENT_SOURCE_DIR}/src/include/pg_config_ext.h + ${CMAKE_CURRENT_SOURCE_DIR}/src/include/pg_config_os.h +) + +if(WIN32) + configure_file(src/include/pg_config.h.win32 include/pg_config.h) + configure_file(src/include/pg_config_ext.h.win32 include/pg_config_ext.h) + configure_file(src/include/port/win32.h include/pg_config_os.h) +elseif(CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64") + file(WRITE "${CMAKE_CURRENT_BINARY_DIR}/include/pg_config_ext.h" "#include \n#define PG_INT64_TYPE int64_t") + configure_file("${PORT_DIR}/pg_config.darwin.h" include/pg_config.h COPYONLY) + configure_file(src/include/port/darwin.h include/pg_config_os.h COPYONLY) + configure_file(src/backend/port/dynloader/darwin.h include/dynloader.h COPYONLY) +elseif(CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64") + file(WRITE "${CMAKE_CURRENT_BINARY_DIR}/include/pg_config_ext.h" "#include \n#define PG_INT64_TYPE int64_t") + configure_file(src/include/port/linux.h include/pg_config_os.h COPYONLY) + configure_file("${PORT_DIR}/pg_config.linux.h" include/pg_config.h COPYONLY) + configure_file(src/backend/port/dynloader/linux.h include/dynloader.h COPYONLY) +else() + message(FATAL_ERROR "Unknown system: ${CMAKE_SYSTEM_NAME}-${CMAKE_SYSTEM_PROCESSOR}") +endif() file(WRITE ${CMAKE_CURRENT_BINARY_DIR}/include/pg_config_paths.h "#define SYSCONFDIR \"\"") set(INSTALL_INCLUDES ON CACHE BOOL "Install include files") set(pg_port_src - src/port/getaddrinfo.c src/port/pgstrcasecmp.c src/port/pqsignal.c src/port/thread.c - src/port/inet_aton.c src/port/crypt.c src/port/noblock.c src/port/chklocale.c - src/port/inet_net_ntop.c src/port/snprintf.c - src/port/strlcpy.c - src/port/dirent.c src/port/dirmod.c src/port/pgsleep.c src/port/open.c src/port/system.c - src/port/win32error.c - src/port/win32setlocale.c ) +if(WIN32) + list(APPEND pg_port_src + src/port/dirent.c + src/port/inet_aton.c + src/port/inet_net_ntop.c + src/port/win32error.c + src/port/win32setlocale.c + src/port/getaddrinfo.c + src/port/strlcpy.c + ) + include_directories(src/include/port/win32 src/include/port/win32_msvc) +elseif(CMAKE_SYSTEM_NAME STREQUAL "Linux") + list(APPEND pg_port_src + src/port/strlcpy.c + ) +endif() + set(pg_backend_src src/backend/libpq/md5.c src/backend/libpq/ip.c src/backend/utils/mb/wchar.c src/backend/utils/mb/encnames.c ) +if(CMAKE_SYSTEM_NAME STREQUAL "Linux") + list(APPEND pg_backend_src + src/backend/port/dynloader/linux.c + src/backend/port/sysv_sema.c + src/backend/port/sysv_shmem.c + ) +endif() +if(NOT WIN32) + add_custom_command( + OUTPUT ${CMAKE_CURRENT_BINARY_DIR}/include/utils/errcodes.h + COMMAND "${PERL}" "${CMAKE_CURRENT_SOURCE_DIR}/src/backend/utils/generate-errcodes.pl" "${CMAKE_CURRENT_SOURCE_DIR}/src/backend/utils/errcodes.txt" > "${CMAKE_CURRENT_BINARY_DIR}/include/utils/errcodes.h" + VERBATIM + ) + list(APPEND pg_backend_src + ${CMAKE_CURRENT_BINARY_DIR}/include/utils/errcodes.h + ) +endif() + set(pg_libpq_src src/interfaces/libpq/fe-auth.c src/interfaces/libpq/fe-connect.c @@ -49,16 +106,21 @@ set(pg_libpq_src src/interfaces/libpq/fe-secure.c src/interfaces/libpq/libpq-events.c src/interfaces/libpq/pqexpbuffer.c - src/interfaces/libpq/pthread-win32.c - src/interfaces/libpq/win32.c src/interfaces/libpq/libpq-dist.rc ) + +if(WIN32) + list(APPEND pg_libpq_src + src/interfaces/libpq/pthread-win32.c + src/interfaces/libpq/win32.c + ) +endif() set(pg_libpq_interface src/include/postgres_ext.h ${CMAKE_CURRENT_BINARY_DIR}/include/pg_config_ext.h ${CMAKE_CURRENT_BINARY_DIR}/include/pg_config.h src/interfaces/libpq/libpq-fe.h - ) +) set(pg_libpq_catalog_interface src/include/catalog/pg_type.h src/include/catalog/genbki.h @@ -68,8 +130,11 @@ set(CMAKE_DEBUG_POSTFIX "d") set(CMAKE_INCLUDE_CURRENT_DIR ON) add_library(libpq ${pg_port_src} ${pg_backend_src} ${pg_libpq_src}) target_compile_definitions(libpq PRIVATE -DFRONTEND -DENABLE_THREAD_SAFETY -DUSE_OPENSSL -D_CRT_SECURE_NO_WARNINGS) -target_link_libraries(libpq PRIVATE OpenSSL::SSL ws2_32 secur32 advapi32 shell32) -target_include_directories(libpq PRIVATE src/include src/include/port/win32 src/include/port/win32_msvc src/port ${CMAKE_CURRENT_BINARY_DIR}/include) +target_link_libraries(libpq PRIVATE OpenSSL::SSL) +if(WIN32) + target_link_libraries(libpq PRIVATE ws2_32 secur32 advapi32 shell32) +endif() +target_include_directories(libpq PRIVATE src/include src/port ${CMAKE_CURRENT_BINARY_DIR}/include) set_target_properties(libpq PROPERTIES WINDOWS_EXPORT_ALL_SYMBOLS ON) install(TARGETS libpq diff --git a/ports/libpq/CONTROL b/ports/libpq/CONTROL index b91e08526..225d886de 100644 --- a/ports/libpq/CONTROL +++ b/ports/libpq/CONTROL @@ -1,4 +1,4 @@ Source: libpq -Version: 9.6.1-1 +Version: 9.6.1-4 Description: The official database access API of postgresql -Build-Depends: openssl +Build-Depends: openssl, zlib (linux) diff --git a/ports/libpq/pg_config.darwin.h b/ports/libpq/pg_config.darwin.h new file mode 100644 index 000000000..5db9f84d2 --- /dev/null +++ b/ports/libpq/pg_config.darwin.h @@ -0,0 +1,191 @@ +#define ACCEPT_TYPE_ARG1 int +#define ACCEPT_TYPE_ARG2 struct sockaddr * +#define ACCEPT_TYPE_ARG3 socklen_t +#define ACCEPT_TYPE_RETURN int +#define ALIGNOF_DOUBLE 8 +#define ALIGNOF_INT 4 +#define ALIGNOF_LONG 8 +#define ALIGNOF_SHORT 2 +#define BLCKSZ 8192 +#define DEF_PGPORT 5432 +#define DEF_PGPORT_STR "5432" +#define ENABLE_THREAD_SAFETY 1 +#define FLEXIBLE_ARRAY_MEMBER /**/ +#define FLOAT4PASSBYVAL true +#define FLOAT8PASSBYVAL true +#ifdef GETTIMEOFDAY_1ARG +# define gettimeofday(a,b) gettimeofday(a) +#endif +#define HAVE_ATOMICS 1 +#define HAVE_CBRT 1 +#define HAVE_CRYPT 1 +#define HAVE_DECL_FDATASYNC 0 +#define HAVE_DECL_F_FULLFSYNC 1 +#define HAVE_DECL_POSIX_FADVISE 0 +#define HAVE_DECL_SNPRINTF 1 +#define HAVE_DECL_STRLCAT 1 +#define HAVE_DECL_STRLCPY 1 +#define HAVE_DECL_SYS_SIGLIST 1 +#define HAVE_DECL_VSNPRINTF 1 +#define HAVE_DLOPEN 1 +#define HAVE_FDATASYNC 1 +#define HAVE_FLS 1 +#define HAVE_FSEEKO 1 +#define HAVE_FUNCNAME__FUNC 1 +#define HAVE_GCC__ATOMIC_INT32_CAS 1 +#define HAVE_GCC__ATOMIC_INT64_CAS 1 +#define HAVE_GCC__SYNC_CHAR_TAS 1 +#define HAVE_GCC__SYNC_INT32_CAS 1 +#define HAVE_GCC__SYNC_INT32_TAS 1 +#define HAVE_GCC__SYNC_INT64_CAS 1 +#define HAVE_GETADDRINFO 1 +#define HAVE_GETIFADDRS 1 +#define HAVE_GETOPT 1 +#define HAVE_GETOPT_H 1 +#define HAVE_GETOPT_LONG 1 +#define HAVE_GETPEEREID 1 +#define HAVE_GETPWUID_R 1 +#define HAVE_GETRLIMIT 1 +#define HAVE_GETRUSAGE 1 +#define HAVE_HISTORY_TRUNCATE_FILE 1 +#define HAVE_IFADDRS_H 1 +#define HAVE_INET_ATON 1 +#define HAVE_INTPTR_T 1 +#define HAVE_INTTYPES_H 1 +#define HAVE_INT_OPTERR 1 +#define HAVE_INT_OPTRESET 1 +#define HAVE_INT_TIMEZONE 1 +#define HAVE_IPV6 1 +#define HAVE_ISINF 1 +#define HAVE_LANGINFO_H 1 +#define HAVE_LIBM 1 +#define HAVE_LIBREADLINE 1 +#define HAVE_LIBZ 1 +#define HAVE_LOCALE_T 1 +#define HAVE_LONG_INT_64 1 +#define HAVE_LONG_LONG_INT 1 +#define HAVE_MBSTOWCS_L 1 +#define HAVE_MEMMOVE 1 +#define HAVE_MEMORY_H 1 +#define HAVE_MKDTEMP 1 +#define HAVE_NETINET_IN_H 1 +#define HAVE_NETINET_TCP_H 1 +#define HAVE_NET_IF_H 1 +#define HAVE_POLL 1 +#define HAVE_POLL_H 1 +#define HAVE_PTHREAD 1 +#define HAVE_PTHREAD_IS_THREADED_NP 1 +#define HAVE_PTHREAD_PRIO_INHERIT 1 +#define HAVE_PWD_H 1 +#define HAVE_RANDOM 1 +#define HAVE_READLINE_HISTORY_H 1 +#define HAVE_READLINE_READLINE_H 1 +#define HAVE_READLINK 1 +#define HAVE_RINT 1 +#define HAVE_RL_COMPLETION_APPEND_CHARACTER 1 +#define HAVE_RL_COMPLETION_MATCHES 1 +#define HAVE_RL_FILENAME_COMPLETION_FUNCTION 1 +#define HAVE_SETSID 1 +#define HAVE_SHM_OPEN 1 +#define HAVE_SNPRINTF 1 +#define HAVE_SPINLOCKS 1 +#define HAVE_SRANDOM 1 +#define HAVE_SSL_GET_CURRENT_COMPRESSION 1 +#define HAVE_STDINT_H 1 +#define HAVE_STDLIB_H 1 +#define HAVE_STRERROR 1 +#define HAVE_STRERROR_R 1 +#define HAVE_STRINGS_H 1 +#define HAVE_STRING_H 1 +#define HAVE_STRLCAT 1 +#define HAVE_STRLCPY 1 +#define HAVE_STRTOLL 1 +#define HAVE_STRTOULL 1 +#define HAVE_STRUCT_ADDRINFO 1 +#define HAVE_STRUCT_OPTION 1 +#define HAVE_STRUCT_SOCKADDR_SA_LEN 1 +#define HAVE_STRUCT_SOCKADDR_STORAGE 1 +#define HAVE_STRUCT_SOCKADDR_STORAGE_SS_FAMILY 1 +#define HAVE_STRUCT_SOCKADDR_STORAGE_SS_LEN 1 +#define HAVE_STRUCT_TM_TM_ZONE 1 +#define HAVE_SYMLINK 1 +#define HAVE_SYSLOG 1 +#define HAVE_SYS_IOCTL_H 1 +#define HAVE_SYS_IPC_H 1 +#define HAVE_SYS_POLL_H 1 +#define HAVE_SYS_RESOURCE_H 1 +#define HAVE_SYS_SELECT_H 1 +#define HAVE_SYS_SEM_H 1 +#define HAVE_SYS_SHM_H 1 +#define HAVE_SYS_SOCKET_H 1 +#define HAVE_SYS_SOCKIO_H 1 +#define HAVE_SYS_STAT_H 1 +#define HAVE_SYS_TIME_H 1 +#define HAVE_SYS_TYPES_H 1 +#define HAVE_SYS_UCRED_H 1 +#define HAVE_SYS_UN_H 1 +#define HAVE_TERMIOS_H 1 +#define HAVE_TM_ZONE 1 +#define HAVE_TOWLOWER 1 +#define HAVE_TZNAME 1 +#define HAVE_UINTPTR_T 1 +#define HAVE_UNION_SEMUN 1 +#define HAVE_UNISTD_H 1 +#define HAVE_UNIX_SOCKETS 1 +#define HAVE_UNSETENV 1 +#define HAVE_UNSIGNED_LONG_LONG_INT 1 +#define HAVE_UTIME 1 +#define HAVE_UTIMES 1 +#define HAVE_UTIME_H 1 +#define HAVE_VSNPRINTF 1 +#define HAVE_WCHAR_H 1 +#define HAVE_WCSTOMBS 1 +#define HAVE_WCSTOMBS_L 1 +#define HAVE_WCTYPE_H 1 +#define HAVE__BUILTIN_BSWAP32 1 +#define HAVE__BUILTIN_BSWAP64 1 +#define HAVE__BUILTIN_CONSTANT_P 1 +#define HAVE__BUILTIN_TYPES_COMPATIBLE_P 1 +#define HAVE__BUILTIN_UNREACHABLE 1 +#define HAVE__GET_CPUID 1 +#define HAVE__STATIC_ASSERT 1 +#define HAVE__VA_ARGS 1 +#define INT64_MODIFIER "l" +#define LOCALE_T_IN_XLOCALE 1 +#define MAXIMUM_ALIGNOF 8 +#define MEMSET_LOOP_LIMIT 1024 +#define PACKAGE_BUGREPORT "pgsql-bugs@postgresql.org" +#define PACKAGE_NAME "PostgreSQL" +#define PACKAGE_STRING "PostgreSQL 9.6.3" +#define PACKAGE_TARNAME "postgresql" +#define PACKAGE_URL "" +#define PACKAGE_VERSION "9.6.3" +#define PG_INT128_TYPE __int128 +#define PG_INT64_TYPE long int +#define PG_KRB_SRVNAM "postgres" +#define PG_MAJORVERSION "9.6" +#define PG_PRINTF_ATTRIBUTE printf +#define PG_VERSION "9.6.3" +#define PG_VERSION_NUM 90603 +#define PG_VERSION_STR "PostgreSQL 9.6.3 on x86_64-apple-darwin15.6.0, compiled by Apple LLVM version 7.0.2 (clang-700.1.81), 64-bit" +#define RELSEG_SIZE 131072 +#define SIZEOF_LONG 8 +#define SIZEOF_OFF_T 8 +#define SIZEOF_SIZE_T 8 +#define SIZEOF_VOID_P 8 +#define STDC_HEADERS 1 +#define STRERROR_R_INT 1 +#define USE_FLOAT4_BYVAL 1 +#define USE_FLOAT8_BYVAL 1 +#define USE_INTEGER_DATETIMES 1 +#define USE_SSE42_CRC32C_WITH_RUNTIME_CHECK 1 +#define USE_SYSV_SEMAPHORES 1 +#define USE_SYSV_SHARED_MEMORY 1 +#define WCSTOMBS_L_IN_XLOCALE 1 +#if defined AC_APPLE_UNIVERSAL_BUILD +# if defined __BIG_ENDIAN__ +# define WORDS_BIGENDIAN 1 +# endif +#endif +#define XLOG_BLCKSZ 8192 +#define XLOG_SEG_SIZE (16 * 1024 * 1024) diff --git a/ports/libpq/pg_config.linux.h b/ports/libpq/pg_config.linux.h new file mode 100644 index 000000000..d3758bb95 --- /dev/null +++ b/ports/libpq/pg_config.linux.h @@ -0,0 +1,173 @@ +#define ACCEPT_TYPE_ARG1 int +#define ACCEPT_TYPE_ARG2 struct sockaddr * +#define ACCEPT_TYPE_ARG3 socklen_t +#define ACCEPT_TYPE_RETURN int +#define ALIGNOF_DOUBLE 8 +#define ALIGNOF_INT 4 +#define ALIGNOF_LONG 8 +#define ALIGNOF_SHORT 2 +#define BLCKSZ 8192 +#define DEF_PGPORT 5432 +#define DEF_PGPORT_STR "5432" +#define ENABLE_THREAD_SAFETY 1 +#define FLEXIBLE_ARRAY_MEMBER /**/ +#define FLOAT4PASSBYVAL true +#define FLOAT8PASSBYVAL true +#ifdef GETTIMEOFDAY_1ARG +# define gettimeofday(a,b) gettimeofday(a) +#endif +#define HAVE_ATOMICS 1 +#define HAVE_CBRT 1 +#define HAVE_CRYPT 1 +#define HAVE_CRYPT_H 1 +#define HAVE_DECL_FDATASYNC 1 +#define HAVE_DECL_F_FULLFSYNC 0 +#define HAVE_DECL_POSIX_FADVISE 1 +#define HAVE_DECL_SNPRINTF 1 +#define HAVE_DECL_STRLCAT 0 +#define HAVE_DECL_STRLCPY 0 +#define HAVE_DECL_SYS_SIGLIST 1 +#define HAVE_DECL_VSNPRINTF 1 +#define HAVE_DLOPEN 1 +#define HAVE_FDATASYNC 1 +#define HAVE_FSEEKO 1 +#define HAVE_FUNCNAME__FUNC 1 +#define HAVE_GCC__ATOMIC_INT32_CAS 1 +#define HAVE_GCC__ATOMIC_INT64_CAS 1 +#define HAVE_GCC__SYNC_CHAR_TAS 1 +#define HAVE_GCC__SYNC_INT32_CAS 1 +#define HAVE_GCC__SYNC_INT32_TAS 1 +#define HAVE_GCC__SYNC_INT64_CAS 1 +#define HAVE_GETADDRINFO 1 +#define HAVE_GETHOSTBYNAME_R 1 +#define HAVE_GETIFADDRS 1 +#define HAVE_GETOPT 1 +#define HAVE_GETOPT_H 1 +#define HAVE_GETOPT_LONG 1 +#define HAVE_GETPWUID_R 1 +#define HAVE_GETRLIMIT 1 +#define HAVE_GETRUSAGE 1 +#define HAVE_IFADDRS_H 1 +#define HAVE_INET_ATON 1 +#define HAVE_INTPTR_T 1 +#define HAVE_INTTYPES_H 1 +#define HAVE_INT_OPTERR 1 +#define HAVE_INT_TIMEZONE 1 +#define HAVE_IPV6 1 +#define HAVE_ISINF 1 +#define HAVE_LANGINFO_H 1 +#define HAVE_LIBM 1 +#define HAVE_LIBZ 1 +#define HAVE_LOCALE_T 1 +#define HAVE_LONG_INT_64 1 +#define HAVE_LONG_LONG_INT 1 +#define HAVE_MEMMOVE 1 +#define HAVE_MEMORY_H 1 +#define HAVE_MKDTEMP 1 +#define HAVE_NETINET_IN_H 1 +#define HAVE_NETINET_TCP_H 1 +#define HAVE_NET_IF_H 1 +#define HAVE_POLL 1 +#define HAVE_POLL_H 1 +#define HAVE_POSIX_FADVISE 1 +#define HAVE_PTHREAD 1 +#define HAVE_PTHREAD_PRIO_INHERIT 1 +#define HAVE_PWD_H 1 +#define HAVE_RANDOM 1 +#define HAVE_READLINK 1 +#define HAVE_RINT 1 +#define HAVE_SETSID 1 +#define HAVE_SHM_OPEN 1 +#define HAVE_SNPRINTF 1 +#define HAVE_SPINLOCKS 1 +#define HAVE_SRANDOM 1 +#define HAVE_SSL_GET_CURRENT_COMPRESSION 1 +#define HAVE_STDINT_H 1 +#define HAVE_STDLIB_H 1 +#define HAVE_STRERROR 1 +#define HAVE_STRERROR_R 1 +#define HAVE_STRINGS_H 1 +#define HAVE_STRING_H 1 +#define HAVE_STRTOLL 1 +#define HAVE_STRTOULL 1 +#define HAVE_STRUCT_ADDRINFO 1 +#define HAVE_STRUCT_OPTION 1 +#define HAVE_STRUCT_SOCKADDR_STORAGE 1 +#define HAVE_STRUCT_SOCKADDR_STORAGE_SS_FAMILY 1 +#define HAVE_STRUCT_TM_TM_ZONE 1 +#define HAVE_SYMLINK 1 +#define HAVE_SYNC_FILE_RANGE 1 +#define HAVE_SYSLOG 1 +#define HAVE_SYS_EPOLL_H 1 +#define HAVE_SYS_IOCTL_H 1 +#define HAVE_SYS_IPC_H 1 +#define HAVE_SYS_POLL_H 1 +#define HAVE_SYS_RESOURCE_H 1 +#define HAVE_SYS_SELECT_H 1 +#define HAVE_SYS_SEM_H 1 +#define HAVE_SYS_SHM_H 1 +#define HAVE_SYS_SOCKET_H 1 +#define HAVE_SYS_STAT_H 1 +#define HAVE_SYS_TIME_H 1 +#define HAVE_SYS_TYPES_H 1 +#define HAVE_SYS_UN_H 1 +#define HAVE_TERMIOS_H 1 +#define HAVE_TM_ZONE 1 +#define HAVE_TOWLOWER 1 +#define HAVE_TZNAME 1 +#define HAVE_UINTPTR_T 1 +#define HAVE_UNISTD_H 1 +#define HAVE_UNIX_SOCKETS 1 +#define HAVE_UNSETENV 1 +#define HAVE_UNSIGNED_LONG_LONG_INT 1 +#define HAVE_UTIME 1 +#define HAVE_UTIMES 1 +#define HAVE_UTIME_H 1 +#define HAVE_VSNPRINTF 1 +#define HAVE_WCHAR_H 1 +#define HAVE_WCSTOMBS 1 +#define HAVE_WCTYPE_H 1 +#define HAVE__BUILTIN_BSWAP32 1 +#define HAVE__BUILTIN_BSWAP64 1 +#define HAVE__BUILTIN_CONSTANT_P 1 +#define HAVE__BUILTIN_TYPES_COMPATIBLE_P 1 +#define HAVE__BUILTIN_UNREACHABLE 1 +#define HAVE__GET_CPUID 1 +#define HAVE__STATIC_ASSERT 1 +#define HAVE__VA_ARGS 1 +#define INT64_MODIFIER "l" +#define MAXIMUM_ALIGNOF 8 +#define MEMSET_LOOP_LIMIT 1024 +#define PACKAGE_BUGREPORT "pgsql-bugs@postgresql.org" +#define PACKAGE_NAME "PostgreSQL" +#define PACKAGE_STRING "PostgreSQL 9.6.3" +#define PACKAGE_TARNAME "postgresql" +#define PACKAGE_URL "" +#define PACKAGE_VERSION "9.6.3" +#define PG_INT128_TYPE __int128 +#define PG_INT64_TYPE long int +#define PG_KRB_SRVNAM "postgres" +#define PG_MAJORVERSION "9.6" +#define PG_PRINTF_ATTRIBUTE gnu_printf +#define PG_VERSION "9.6.3" +#define PG_VERSION_NUM 90603 +#define PG_VERSION_STR "PostgreSQL 9.6.3 on x86_64-pc-linux-gnu, compiled by gcc (Ubuntu 5.4.1-2ubuntu1~16.04) 5.4.1 20160904, 64-bit" +#define RELSEG_SIZE 131072 +#define SIZEOF_LONG 8 +#define SIZEOF_OFF_T 8 +#define SIZEOF_SIZE_T 8 +#define SIZEOF_VOID_P 8 +#define STDC_HEADERS 1 +#define USE_FLOAT4_BYVAL 1 +#define USE_FLOAT8_BYVAL 1 +#define USE_INTEGER_DATETIMES 1 +#define USE_SSE42_CRC32C_WITH_RUNTIME_CHECK 1 +#define USE_SYSV_SEMAPHORES 1 +#define USE_SYSV_SHARED_MEMORY 1 +#if defined AC_APPLE_UNIVERSAL_BUILD +# if defined __BIG_ENDIAN__ +# define WORDS_BIGENDIAN 1 +# endif +#endif +#define XLOG_BLCKSZ 8192 +#define XLOG_SEG_SIZE (16 * 1024 * 1024) diff --git a/ports/libpq/portfile.cmake b/ports/libpq/portfile.cmake index 2d14204fa..7b23aed32 100644 --- a/ports/libpq/portfile.cmake +++ b/ports/libpq/portfile.cmake @@ -12,7 +12,10 @@ file(COPY ${CMAKE_CURRENT_LIST_DIR}/CMakeLists.txt DESTINATION ${SOURCE_PATH}) vcpkg_configure_cmake( SOURCE_PATH ${SOURCE_PATH} PREFER_NINJA - OPTIONS_DEBUG -DINSTALL_INCLUDES=OFF + OPTIONS + "-DPORT_DIR=${CMAKE_CURRENT_LIST_DIR}" + OPTIONS_DEBUG + -DINSTALL_INCLUDES=OFF ) vcpkg_install_cmake() diff --git a/ports/libuuid/CMakeLists.txt b/ports/libuuid/CMakeLists.txt new file mode 100644 index 000000000..a4335f1a8 --- /dev/null +++ b/ports/libuuid/CMakeLists.txt @@ -0,0 +1,35 @@ +cmake_minimum_required(VERSION 3.0) +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") + +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) +endif() + +install( + TARGETS uuid + RUNTIME DESTINATION bin + LIBRARY DESTINATION lib + ARCHIVE DESTINATION lib +) diff --git a/ports/libuuid/CONTROL b/ports/libuuid/CONTROL new file mode 100644 index 000000000..bfec975dd --- /dev/null +++ b/ports/libuuid/CONTROL @@ -0,0 +1,3 @@ +Source: libuuid +Version: 1.0.3 +Description: Universally unique id library diff --git a/ports/libuuid/config.linux.h b/ports/libuuid/config.linux.h new file mode 100644 index 000000000..38b53cac1 --- /dev/null +++ b/ports/libuuid/config.linux.h @@ -0,0 +1,13 @@ +#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" diff --git a/ports/libuuid/portfile.cmake b/ports/libuuid/portfile.cmake new file mode 100644 index 000000000..7989e830d --- /dev/null +++ b/ports/libuuid/portfile.cmake @@ -0,0 +1,29 @@ +include(vcpkg_common_functions) + +set(SOURCE_PATH ${CURRENT_BUILDTREES_DIR}/src/libuuid-1.0.3) +vcpkg_download_distfile(ARCHIVE + URLS "http://sourceforge.net/projects/libuuid/files/libuuid-1.0.3.tar.gz" + FILENAME libuuid-1.0.3.tar.gz + SHA512 77488caccc66503f6f2ded7bdfc4d3bc2c20b24a8dc95b2051633c695e99ec27876ffbafe38269b939826e1fdb06eea328f07b796c9e0aaca12331a787175507 +) + +vcpkg_extract_source_archive(${ARCHIVE}) + +file(COPY + ${CMAKE_CURRENT_LIST_DIR}/CMakeLists.txt + ${CMAKE_CURRENT_LIST_DIR}/config.linux.h + DESTINATION ${SOURCE_PATH} +) + +vcpkg_configure_cmake( + SOURCE_PATH ${SOURCE_PATH} + PREFER_NINJA +) + +vcpkg_install_cmake() + +file(INSTALL + ${SOURCE_PATH}/COPYING + DESTINATION ${CURRENT_PACKAGES_DIR}/share/libuuid RENAME copyright) + +vcpkg_copy_pdbs() diff --git a/ports/libvpx/CONTROL b/ports/libvpx/CONTROL index b4cfa55f4..6095c6de6 100644 --- a/ports/libvpx/CONTROL +++ b/ports/libvpx/CONTROL @@ -1,3 +1,3 @@ Source: libvpx -Version: 1.6.1-1 +Version: 1.6.1-2 Description: The reference software implementation for the video coding formats VP8 and VP9. diff --git a/ports/magnum-extras/portfile.cmake b/ports/magnum-extras/portfile.cmake index 402c1aa1f..d97508497 100644 --- a/ports/magnum-extras/portfile.cmake +++ b/ports/magnum-extras/portfile.cmake @@ -7,11 +7,7 @@ vcpkg_from_github( HEAD_REF master ) -if(VCPKG_LIBRARY_LINKAGE STREQUAL static) - set(BUILD_STATIC 1) -else() - set(BUILD_STATIC 0) -endif() +string(COMPARE EQUAL "${VCPKG_LIBRARY_LINKAGE}" "static" BUILD_STATIC) # Handle features set(_COMPONENT_FLAGS "") @@ -48,14 +44,14 @@ if("ui" IN_LIST FEATURES) 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) + ${CURRENT_PACKAGES_DIR}/debug/share +) # Clean up empty directories -if("${FEATURES}" STREQUAL "") +if("${FEATURES}" STREQUAL "core") file(REMOVE_RECURSE ${CURRENT_PACKAGES_DIR}/bin ${CURRENT_PACKAGES_DIR}/lib diff --git a/ports/magnum-integration/portfile.cmake b/ports/magnum-integration/portfile.cmake index 8ef1899fd..da9c393b7 100644 --- a/ports/magnum-integration/portfile.cmake +++ b/ports/magnum-integration/portfile.cmake @@ -7,11 +7,7 @@ vcpkg_from_github( HEAD_REF master ) -if(VCPKG_LIBRARY_LINKAGE STREQUAL static) - set(BUILD_STATIC 1) -else() - set(BUILD_STATIC 0) -endif() +string(COMPARE EQUAL "${VCPKG_LIBRARY_LINKAGE}" "static" BUILD_STATIC) # Handle features set(_COMPONENT_FLAGS "") @@ -44,14 +40,16 @@ vcpkg_install_cmake() # Debug includes and share are the same as release file(REMOVE_RECURSE ${CURRENT_PACKAGES_DIR}/debug/include - ${CURRENT_PACKAGES_DIR}/debug/share) + ${CURRENT_PACKAGES_DIR}/debug/share +) # Clean up empty directories -if(NOT FEATURES) +if("${FEATURES}" STREQUAL "core") file(REMOVE_RECURSE ${CURRENT_PACKAGES_DIR}/bin ${CURRENT_PACKAGES_DIR}/lib - ${CURRENT_PACKAGES_DIR}/debug) + ${CURRENT_PACKAGES_DIR}/debug + ) set(VCPKG_POLICY_EMPTY_INCLUDE_FOLDER enabled) endif() diff --git a/ports/mpg123/CONTROL b/ports/mpg123/CONTROL index 7eba5e9b8..488ca7a90 100644 --- a/ports/mpg123/CONTROL +++ b/ports/mpg123/CONTROL @@ -1,3 +1,3 @@ Source: mpg123 -Version: 1.25.8-3 +Version: 1.25.8-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). \ No newline at end of file diff --git a/ports/nuklear/CONTROL b/ports/nuklear/CONTROL index c9a4c23a5..694ddd5b7 100644 --- a/ports/nuklear/CONTROL +++ b/ports/nuklear/CONTROL @@ -1,3 +1,3 @@ Source: nuklear -Version: 2018-03-20 +Version: 2018-03-27 Description: This is a minimal state immediate mode graphical user interface toolkit written in ANSI C and licensed under public domain diff --git a/ports/nuklear/portfile.cmake b/ports/nuklear/portfile.cmake index 833a34692..9baefc9a4 100644 --- a/ports/nuklear/portfile.cmake +++ b/ports/nuklear/portfile.cmake @@ -2,8 +2,8 @@ include(vcpkg_common_functions) vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO vurtun/nuklear - REF 94c0412a086110dc801d83c20be7cb4e89dbd5d1 - SHA512 882bce080ca15a9b789289ceda987f1154df1800fd1428cf1d14db5704caf9ed3842ec1fe345db9548fe5305aa8f8721ddd53e75294b896c8caad061d29ec95a + REF 7e710ff4fb0186c0e462d43b30c82cab12ea1277 + SHA512 9f65e2fe2e89521002f7d86e8c5f0947a76724b7e7eb87463832732f38561b0415da98a8411e474467a9e5e1b33189c98f6506cc1baf97dbced66cfe05f2a290 HEAD_REF master ) file(INSTALL ${SOURCE_PATH}/nuklear.h DESTINATION ${CURRENT_PACKAGES_DIR}/include) diff --git a/ports/nvml/CONTROL b/ports/nvml/CONTROL deleted file mode 100644 index 8bf941bd3..000000000 --- a/ports/nvml/CONTROL +++ /dev/null @@ -1,3 +0,0 @@ -Source: nvml -Version: 1.3-0 -Description: Non-Volatile Memory Library \ No newline at end of file diff --git a/ports/openssl/CONTROL b/ports/openssl/CONTROL index 43a6eb660..9266dd10d 100644 --- a/ports/openssl/CONTROL +++ b/ports/openssl/CONTROL @@ -1,3 +1,3 @@ Source: openssl -Version: 1.0.2n-3 +Version: 1.0.2o Description: OpenSSL is an open source project that provides a robust, commercial-grade, and full-featured toolkit for the Transport Layer Security (TLS) and Secure Sockets Layer (SSL) protocols. It is also a general-purpose cryptography library. diff --git a/ports/openssl/RemoveNonASCIIChar.patch b/ports/openssl/RemoveNonASCIIChar.patch deleted file mode 100644 index 5c4553b0a..000000000 --- a/ports/openssl/RemoveNonASCIIChar.patch +++ /dev/null @@ -1,13 +0,0 @@ -diff --git a/ssl/bad_dtls_test.c b/ssl/bad_dtls_test.c -index 34af37d..ff754e1 100644 ---- a/ssl/bad_dtls_test.c -+++ b/ssl/bad_dtls_test.c -@@ -19,7 +19,7 @@ - * Note that unlike other SSL tests, we don't test against our own SSL - * server method. Firstly because we don't have one; we *only* support - * DTLS1_BAD_VER as a client. And secondly because even if that were -- * fixed up it's the wrong thing to test against — because if changes -+ * fixed up it's the wrong thing to test against - because if changes - * are made in generic DTLS code which don't take DTLS1_BAD_VER into - * account, there's plenty of scope for making those changes such that - * they break *both* the client and the server in the same way. diff --git a/ports/openssl/portfile.cmake b/ports/openssl/portfile.cmake index 023b3e233..458aa07b6 100644 --- a/ports/openssl/portfile.cmake +++ b/ports/openssl/portfile.cmake @@ -4,7 +4,7 @@ if(VCPKG_CMAKE_SYSTEM_NAME STREQUAL "WindowsStore") endif() include(vcpkg_common_functions) -set(OPENSSL_VERSION 1.0.2n) +set(OPENSSL_VERSION 1.0.2o) set(MASTER_COPY_SOURCE_PATH ${CURRENT_BUILDTREES_DIR}/src/openssl-${OPENSSL_VERSION}) vcpkg_find_acquire_program(PERL) @@ -15,7 +15,7 @@ set(ENV{PATH} "$ENV{PATH};${PERL_EXE_PATH}") vcpkg_download_distfile(OPENSSL_SOURCE_ARCHIVE URLS "https://www.openssl.org/source/openssl-${OPENSSL_VERSION}.tar.gz" "https://www.openssl.org/source/old/1.0.2/openssl-${OPENSSL_VERSION}.tar.gz" FILENAME "openssl-${OPENSSL_VERSION}.tar.gz" - SHA512 144bf0d6aa27b4af01df0b7b734c39962649e1711554247d42e05e14d8945742b18745aefdba162e2dfc762b941fd7d3b2d5dc6a781ae4ba10a6f5a3cadb0687 + SHA512 8a2c93657c85143e76785bb32ee836908c31a6f5f8db993fa9777acba6079e630cdddd03edbad65d1587199fc13a1507789eacf038b56eb99139c2091d9df7fd ) vcpkg_extract_source_archive(${OPENSSL_SOURCE_ARCHIVE}) @@ -24,7 +24,6 @@ vcpkg_apply_patches( PATCHES ${CMAKE_CURRENT_LIST_DIR}/ConfigureIncludeQuotesFix.patch ${CMAKE_CURRENT_LIST_DIR}/STRINGIFYPatch.patch ${CMAKE_CURRENT_LIST_DIR}/EmbedSymbolsInStaticLibsZ7.patch - ${CMAKE_CURRENT_LIST_DIR}/RemoveNonASCIIChar.patch ) if(VCPKG_CMAKE_SYSTEM_NAME) @@ -92,7 +91,7 @@ execute_process( ERROR_FILE ${CURRENT_BUILDTREES_DIR}/build-${TARGET_TRIPLET}-rel-0-err.log ) vcpkg_execute_required_process( - COMMAND ${JOM} -j 1 -f ${OPENSSL_MAKEFILE} install + COMMAND nmake -f ${OPENSSL_MAKEFILE} install WORKING_DIRECTORY ${SOURCE_PATH_RELEASE} LOGNAME build-${TARGET_TRIPLET}-rel-1) @@ -125,7 +124,7 @@ execute_process( ERROR_FILE ${CURRENT_BUILDTREES_DIR}/build-${TARGET_TRIPLET}-dbg-0-err.log ) vcpkg_execute_required_process( - COMMAND ${JOM} -j 1 -f ${OPENSSL_MAKEFILE} install + COMMAND nmake -f ${OPENSSL_MAKEFILE} install WORKING_DIRECTORY ${SOURCE_PATH_DEBUG} LOGNAME build-${TARGET_TRIPLET}-dbg-1) diff --git a/ports/parson/CMakeLists.txt b/ports/parson/CMakeLists.txt new file mode 100644 index 000000000..f96ed427c --- /dev/null +++ b/ports/parson/CMakeLists.txt @@ -0,0 +1,19 @@ +cmake_minimum_required(VERSION 3.5) +project(parson C) + +add_library(parson parson.c) +target_include_directories(parson PUBLIC $) + +install(TARGETS parson + EXPORT unofficial-parson-targets + RUNTIME DESTINATION bin + LIBRARY DESTINATION lib + ARCHIVE DESTINATION lib +) + +install( + EXPORT unofficial-parson-targets + FILE unofficial-parson-config.cmake + NAMESPACE unofficial::parson:: + DESTINATION share/unofficial-parson +) diff --git a/ports/parson/CONTROL b/ports/parson/CONTROL new file mode 100644 index 000000000..47d1167a2 --- /dev/null +++ b/ports/parson/CONTROL @@ -0,0 +1,3 @@ +Source: parson +Version: 2018-03-23 +Description: a lighweight json library written in C diff --git a/ports/parson/portfile.cmake b/ports/parson/portfile.cmake new file mode 100644 index 000000000..f1028d9ee --- /dev/null +++ b/ports/parson/portfile.cmake @@ -0,0 +1,33 @@ +include(vcpkg_common_functions) + +if(VCPKG_LIBRARY_LINKAGE STREQUAL "dynamic") + message("parson only supports static linkage") + set(VCPKG_LIBRARY_LINKAGE "static") +endif() + +vcpkg_from_github( + OUT_SOURCE_PATH SOURCE_PATH + REPO kgabis/parson + REF 387c5665f6b20faa535a7f782dcaa49390963366 + SHA512 755d1351c2176ac75bb865e83cbbd3b8f6b3a5797cccd96e512e474100fbdaacb7d00eb857ebc4478aad40672baeafdecb5d87c26eaa16f43ef5559a0a56f431 + HEAD_REF master +) + +file(COPY ${CMAKE_CURRENT_LIST_DIR}/CMakeLists.txt DESTINATION ${SOURCE_PATH}) + +vcpkg_configure_cmake( + SOURCE_PATH ${SOURCE_PATH} + PREFER_NINJA +) + +vcpkg_install_cmake() + +file(COPY ${SOURCE_PATH}/parson.h DESTINATION ${CURRENT_PACKAGES_DIR}/include) + +vcpkg_fixup_cmake_targets(CONFIG_PATH share/unofficial-parson TARGET_PATH share/unofficial-parson) + +file(INSTALL + ${SOURCE_PATH}/LICENSE + DESTINATION ${CURRENT_PACKAGES_DIR}/share/parson RENAME copyright) + +vcpkg_copy_pdbs() diff --git a/ports/plog/CONTROL b/ports/plog/CONTROL index 091778688..d1abd52a6 100644 --- a/ports/plog/CONTROL +++ b/ports/plog/CONTROL @@ -1,3 +1,3 @@ -Source: plog -Version: 1.1.3 -Description: Portable, simple and extensible C++ logging library. +Source: plog +Version: 1.1.4 +Description: Portable, simple and extensible C++ logging library. diff --git a/ports/plog/portfile.cmake b/ports/plog/portfile.cmake index 5cc0dfbd4..847f2bd37 100644 --- a/ports/plog/portfile.cmake +++ b/ports/plog/portfile.cmake @@ -1,17 +1,17 @@ -# Header-only library -include(vcpkg_common_functions) - -vcpkg_from_github( - OUT_SOURCE_PATH SOURCE_PATH - REPO SergiusTheBest/plog - REF 1.1.3 - SHA512 9a5a455e1942158d2802313682ed007750789a9048773302d92f2591dfac0185914dba8b67fa285fed25e54dff44e2c97c92b9e7decd39fa2bca460c03549377 - HEAD_REF master -) - -# Put the licence file where vcpkg expects it -file(COPY ${SOURCE_PATH}/LICENSE DESTINATION ${CURRENT_PACKAGES_DIR}/share/plog) -file(RENAME ${CURRENT_PACKAGES_DIR}/share/plog/LICENSE ${CURRENT_PACKAGES_DIR}/share/plog/copyright) - -# Copy header files -file(INSTALL ${SOURCE_PATH}/include DESTINATION ${CURRENT_PACKAGES_DIR} FILES_MATCHING PATTERN "*.h") +# Header-only library +include(vcpkg_common_functions) + +vcpkg_from_github( + OUT_SOURCE_PATH SOURCE_PATH + REPO SergiusTheBest/plog + REF 1.1.4 + SHA512 7af75af8343460d62e04cc0c27d4cf86373b136df73d2312d19a2e57fa309e916cef8625b8eed1b7270b93aa5d1ff27aee6edb74beb138e3a21c06a3c3debb41 + HEAD_REF master +) + +# Put the licence file where vcpkg expects it +file(COPY ${SOURCE_PATH}/LICENSE DESTINATION ${CURRENT_PACKAGES_DIR}/share/plog) +file(RENAME ${CURRENT_PACKAGES_DIR}/share/plog/LICENSE ${CURRENT_PACKAGES_DIR}/share/plog/copyright) + +# Copy header files +file(INSTALL ${SOURCE_PATH}/include DESTINATION ${CURRENT_PACKAGES_DIR} FILES_MATCHING PATTERN "*.h") diff --git a/ports/pmdk/CONTROL b/ports/pmdk/CONTROL new file mode 100644 index 000000000..f440b68bc --- /dev/null +++ b/ports/pmdk/CONTROL @@ -0,0 +1,3 @@ +Source: pmdk +Version: 1.4-1 +Description: Persistent Memory Development Kit \ No newline at end of file diff --git a/ports/nvml/portfile.cmake b/ports/pmdk/portfile.cmake similarity index 69% rename from ports/nvml/portfile.cmake rename to ports/pmdk/portfile.cmake index 9e51c2bda..89c48a8fb 100644 --- a/ports/nvml/portfile.cmake +++ b/ports/pmdk/portfile.cmake @@ -1,38 +1,39 @@ - -set(NVML_VERSION 1.3) -set(NVML_HASH 59fb552c693d5279ec86eff8eb1c36832c9c5beb6492a64b54b21c09d90ed52cba22d57912a304cf1ec17c4633da641200fd50dbe4a38355f43c674842f991bd) -set(SOURCE_PATH ${CURRENT_BUILDTREES_DIR}/src/${NVML_VERSION}) - include(vcpkg_common_functions) if (VCPKG_LIBRARY_LINKAGE STREQUAL static) - message(STATUS "WARNING: Static building not supported. Building dynamic.") + message(STATUS "Static building not supported. Building dynamic.") set(VCPKG_LIBRARY_LINKAGE dynamic) endif() +if(VCPKG_CRT_LINKAGE STREQUAL "static") + message(FATAL_ERROR "Static CRT linkage is not supported") +endif() if (TRIPLET_SYSTEM_ARCH MATCHES "arm") message(FATAL_ERROR "ARM is currently not supported") elseif (TRIPLET_SYSTEM_ARCH MATCHES "x86") - message(FATAL_ERROR "x86 is not supported. Please use nvml:x64-windows or set environment variable VCPKG_DEFAULT_TRIPLET to 'x64-windows'") -else () - set(MSBUILD_PLATFORM ${TRIPLET_SYSTEM_ARCH}) + message(FATAL_ERROR "x86 is not supported. Please use pmdk:x64-windows instead.") endif() # Download source vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH - REPO pmem/nvml - REF ${NVML_VERSION} - SHA512 ${NVML_HASH} + REPO pmem/pmdk + REF 1.4 + SHA512 95dbea9acfea4a6cb433a25f56f7484946a93fbce1c5e0e1d6ff36e0824e3e0e9f28f37024918998358f8ff12e69d0902fcf88357b9ad12695f32e06e86ffac8 HEAD_REF master ) +get_filename_component(PMDK_VERSION "${SOURCE_PATH}" NAME) +string(REPLACE "pmdk-" "" PMDK_VERSION "${PMDK_VERSION}") + # Build only the selected projects vcpkg_build_msbuild( - PROJECT_PATH ${SOURCE_PATH}/src/NVML.sln + PROJECT_PATH ${SOURCE_PATH}/src/PMDK.sln PLATFORM x64 - TARGET "Solution Items\\libpmem,Solution Items\\libpmemlog,Solution Items\\libpmemblk,Solution Items\\libpmemobj,Solution Items\\libpmempool,Solution Items\\libvmem,Solution Items\\Tools\\pmempool" - OPTIONS /p:SRCVERSION=${NVML_VERSION} + PLATFORM_TOOLSET v140 + TARGET_PLATFORM_VERSION 10.0.16299.0 + TARGET "Solution Items\\libpmem,Solution Items\\libpmemlog,Solution Items\\libpmemblk,Solution Items\\libpmemobj,Solution Items\\libpmemcto,Solution Items\\libpmempool,Solution Items\\libvmem,Solution Items\\Tools\\pmempool" + OPTIONS /p:SRCVERSION=${PMDK_VERSION} ) set(DEBUG_ARTIFACTS_PATH ${SOURCE_PATH}/src/x64/Debug) @@ -45,10 +46,11 @@ file(GLOB HEADER_FILES ${SOURCE_PATH}/src/include/libpmemobj/*.h) file(INSTALL ${HEADER_FILES} DESTINATION ${CURRENT_PACKAGES_DIR}/include/libpmemobj) file(GLOB HEADER_FILES ${SOURCE_PATH}/src/include/libpmemobj++/*.hpp) 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 libraries (debug) file(GLOB LIB_DEBUG_FILES ${DEBUG_ARTIFACTS_PATH}/lib[pv]mem*.lib ${DEBUG_ARTIFACTS_PATH}/lib[pv]mem*.exp) file(INSTALL ${LIB_DEBUG_FILES} DESTINATION ${CURRENT_PACKAGES_DIR}/debug/lib) @@ -64,11 +66,12 @@ file(GLOB LIB_RELEASE_FILES ${RELEASE_ARTIFACTS_PATH}/lib[pv]mem*.dll) file(INSTALL ${LIB_RELEASE_FILES} DESTINATION ${CURRENT_PACKAGES_DIR}/bin) # Install tools (release only) -file(INSTALL ${RELEASE_ARTIFACTS_PATH}/pmempool.exe DESTINATION ${CURRENT_PACKAGES_DIR}/tools/nvml) -vcpkg_copy_tool_dependencies(${CURRENT_PACKAGES_DIR}/tools/nvml) +file(INSTALL ${RELEASE_ARTIFACTS_PATH}/pmempool.exe DESTINATION ${CURRENT_PACKAGES_DIR}/tools/pmdk) + +vcpkg_copy_tool_dependencies(${CURRENT_PACKAGES_DIR}/tools/pmdk) vcpkg_copy_pdbs() # Handle copyright -file(COPY ${SOURCE_PATH}/LICENSE DESTINATION ${CURRENT_PACKAGES_DIR}/share/nvml) -file(RENAME ${CURRENT_PACKAGES_DIR}/share/nvml/LICENSE ${CURRENT_PACKAGES_DIR}/share/nvml/copyright) +file(COPY ${SOURCE_PATH}/LICENSE DESTINATION ${CURRENT_PACKAGES_DIR}/share/pmdk) +file(RENAME ${CURRENT_PACKAGES_DIR}/share/pmdk/LICENSE ${CURRENT_PACKAGES_DIR}/share/pmdk/copyright) diff --git a/ports/qt5-base/CONTROL b/ports/qt5-base/CONTROL index 1e10239b3..e0b9e0e15 100644 --- a/ports/qt5-base/CONTROL +++ b/ports/qt5-base/CONTROL @@ -1,4 +1,4 @@ Source: qt5-base -Version: 5.9.2-5 +Version: 5.9.2-6 Description: Qt5 Application Framework Base Module. Includes Core, GUI, Widgets, Networking, SQL, Concurrent and other essential qt components. Build-Depends: zlib, libjpeg-turbo, libpng, freetype, pcre2, harfbuzz, sqlite3, libpq, double-conversion, openssl diff --git a/ports/qt5-base/configure_qt.cmake b/ports/qt5-base/configure_qt.cmake index 1d4f1e570..356361a9b 100644 --- a/ports/qt5-base/configure_qt.cmake +++ b/ports/qt5-base/configure_qt.cmake @@ -1,12 +1,8 @@ function(configure_qt) cmake_parse_arguments(_csc "" "SOURCE_PATH;PLATFORM" "OPTIONS;OPTIONS_DEBUG;OPTIONS_RELEASE" ${ARGN}) - if (_csc_PLATFORM) - set(PLATFORM ${_csc_PLATFORM}) - elseif(VCPKG_PLATFORM_TOOLSET MATCHES "v140") - set(PLATFORM "win32-msvc2015") - elseif(VCPKG_PLATFORM_TOOLSET MATCHES "v141") - set(PLATFORM "win32-msvc2017") + if(NOT _csc_PLATFORM) + message(FATAL_ERROR "configure_qt requires a PLATFORM argument.") endif() vcpkg_find_acquire_program(PERL) @@ -15,17 +11,24 @@ function(configure_qt) file(REMOVE_RECURSE ${CURRENT_BUILDTREES_DIR}/${TARGET_TRIPLET}-rel ${CURRENT_BUILDTREES_DIR}/${TARGET_TRIPLET}-dbg) set(ENV{PATH} "$ENV{PATH};${PERL_EXE_PATH}") - if(DEFINED VCPKG_CRT_LINKAGE AND VCPKG_CRT_LINKAGE STREQUAL static) - list(APPEND _csc_OPTIONS - "-static" - "-static-runtime" - ) + if(VCPKG_LIBRARY_LINKAGE STREQUAL static) + list(APPEND _csc_OPTIONS "-static") + endif() + + if(VCPKG_CRT_LINKAGE STREQUAL "static") + list(APPEND _csc_OPTIONS "-static-runtime") + endif() + + if(CMAKE_HOST_WIN32) + set(CONFIGURE_BAT "configure.bat") + else() + set(CONFIGURE_BAT "configure") endif() message(STATUS "Configuring ${TARGET_TRIPLET}-dbg") file(MAKE_DIRECTORY ${CURRENT_BUILDTREES_DIR}/${TARGET_TRIPLET}-dbg) vcpkg_execute_required_process( - COMMAND "${_csc_SOURCE_PATH}/configure.bat" ${_csc_OPTIONS} ${_csc_OPTIONS_DEBUG} + COMMAND "${_csc_SOURCE_PATH}/${CONFIGURE_BAT}" ${_csc_OPTIONS} ${_csc_OPTIONS_DEBUG} -debug -prefix ${CURRENT_PACKAGES_DIR}/debug -hostbindir ${CURRENT_PACKAGES_DIR}/debug/tools/qt5 @@ -36,7 +39,7 @@ function(configure_qt) -headerdir ${CURRENT_PACKAGES_DIR}/include -I ${CURRENT_INSTALLED_DIR}/include -L ${CURRENT_INSTALLED_DIR}/debug/lib - -platform ${PLATFORM} + -platform ${_csc_PLATFORM} WORKING_DIRECTORY ${CURRENT_BUILDTREES_DIR}/${TARGET_TRIPLET}-dbg LOGNAME config-${TARGET_TRIPLET}-dbg ) @@ -45,7 +48,7 @@ function(configure_qt) message(STATUS "Configuring ${TARGET_TRIPLET}-rel") file(MAKE_DIRECTORY ${CURRENT_BUILDTREES_DIR}/${TARGET_TRIPLET}-rel) vcpkg_execute_required_process( - COMMAND "${_csc_SOURCE_PATH}/configure.bat" ${_csc_OPTIONS} ${_csc_OPTIONS_RELEASE} + COMMAND "${_csc_SOURCE_PATH}/${CONFIGURE_BAT}" ${_csc_OPTIONS} ${_csc_OPTIONS_RELEASE} -release -prefix ${CURRENT_PACKAGES_DIR} -hostbindir ${CURRENT_PACKAGES_DIR}/tools/qt5 @@ -55,7 +58,7 @@ function(configure_qt) -qmldir ${CURRENT_PACKAGES_DIR}/qml -I ${CURRENT_INSTALLED_DIR}/include -L ${CURRENT_INSTALLED_DIR}/lib - -platform ${PLATFORM} + -platform ${_csc_PLATFORM} WORKING_DIRECTORY ${CURRENT_BUILDTREES_DIR}/${TARGET_TRIPLET}-rel LOGNAME config-${TARGET_TRIPLET}-rel ) diff --git a/ports/qt5-base/fix-system-pcre2-linux.patch b/ports/qt5-base/fix-system-pcre2-linux.patch new file mode 100644 index 000000000..c5669a4c9 --- /dev/null +++ b/ports/qt5-base/fix-system-pcre2-linux.patch @@ -0,0 +1,17 @@ +diff --git a/src/corelib/configure.json b/src/corelib/configure.json +index a5a1b66..5a48a05 100644 +--- a/src/corelib/configure.json ++++ b/src/corelib/configure.json +@@ -163,8 +163,10 @@ + "builds": { + "debug": "-lpcre2-16d", + "release": "-lpcre2-16" +- } +- } ++ }, ++ "condition": "config.win32" ++ }, ++ { "libs": "-lpcre2-16", "condition": "!config.win32" } + ] + }, + "pps": { diff --git a/ports/qt5-base/install_qt.cmake b/ports/qt5-base/install_qt.cmake index 37528e4e6..482802f38 100644 --- a/ports/qt5-base/install_qt.cmake +++ b/ports/qt5-base/install_qt.cmake @@ -2,12 +2,27 @@ function(install_qt) cmake_parse_arguments(_bc "DISABLE_PARALLEL" "" "" ${ARGN}) if (_bc_DISABLE_PARALLEL) - set(JOBS "1") + set(NUMBER_OF_PROCESSORS "1") else() - set(JOBS "$ENV{NUMBER_OF_PROCESSORS}") + if(DEFINED ENV{NUMBER_OF_PROCESSORS}) + set(NUMBER_OF_PROCESSORS $ENV{NUMBER_OF_PROCESSORS}) + else() + execute_process( + COMMAND nproc + OUTPUT_VARIABLE NUMBER_OF_PROCESSORS + ) + string(REPLACE "\n" "" NUMBER_OF_PROCESSORS "${NUMBER_OF_PROCESSORS}") + string(REPLACE " " "" NUMBER_OF_PROCESSORS "${NUMBER_OF_PROCESSORS}") + endif() endif() - vcpkg_find_acquire_program(JOM) + if(CMAKE_HOST_WIN32) + vcpkg_find_acquire_program(JOM) + set(INVOKE "${JOM}" /J ${NUMBER_OF_PROCESSORS}) + else() + find_program(MAKE make) + set(INVOKE "${MAKE}" -j${NUMBER_OF_PROCESSORS}) + endif() vcpkg_find_acquire_program(PYTHON3) get_filename_component(PYTHON3_EXE_PATH ${PYTHON3} DIRECTORY) set(ENV{PATH} "${PYTHON3_EXE_PATH};$ENV{PATH}") @@ -16,12 +31,12 @@ function(install_qt) message(STATUS "Package ${TARGET_TRIPLET}-dbg") set(ENV{PATH} "${CURRENT_INSTALLED_DIR}/debug/bin;${_path}") vcpkg_execute_required_process( - COMMAND ${JOM} /J ${JOBS} + COMMAND ${INVOKE} WORKING_DIRECTORY ${CURRENT_BUILDTREES_DIR}/${TARGET_TRIPLET}-dbg LOGNAME build-${TARGET_TRIPLET}-dbg ) vcpkg_execute_required_process( - COMMAND ${JOM} /J ${JOBS} install + COMMAND ${INVOKE} install WORKING_DIRECTORY ${CURRENT_BUILDTREES_DIR}/${TARGET_TRIPLET}-dbg LOGNAME package-${TARGET_TRIPLET}-dbg ) @@ -30,12 +45,12 @@ function(install_qt) message(STATUS "Package ${TARGET_TRIPLET}-rel") set(ENV{PATH} "${CURRENT_INSTALLED_DIR}/bin;${_path}") vcpkg_execute_required_process( - COMMAND ${JOM} /J ${JOBS} + COMMAND ${INVOKE} WORKING_DIRECTORY ${CURRENT_BUILDTREES_DIR}/${TARGET_TRIPLET}-rel LOGNAME build-${TARGET_TRIPLET}-rel ) vcpkg_execute_required_process( - COMMAND ${JOM} /J ${JOBS} install + COMMAND ${INVOKE} install WORKING_DIRECTORY ${CURRENT_BUILDTREES_DIR}/${TARGET_TRIPLET}-rel LOGNAME package-${TARGET_TRIPLET}-rel ) diff --git a/ports/qt5-base/portfile.cmake b/ports/qt5-base/portfile.cmake index 9e9d7779a..e5bdba8a5 100644 --- a/ports/qt5-base/portfile.cmake +++ b/ports/qt5-base/portfile.cmake @@ -1,13 +1,13 @@ include(vcpkg_common_functions) string(LENGTH "${CURRENT_BUILDTREES_DIR}" BUILDTREES_PATH_LENGTH) -if(BUILDTREES_PATH_LENGTH GREATER 37) +if(BUILDTREES_PATH_LENGTH GREATER 37 AND CMAKE_HOST_WIN32) message(WARNING "Qt5'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() -if(VCPKG_LIBRARY_LINKAGE STREQUAL static) +if((NOT VCPKG_CMAKE_SYSTEM_NAME OR VCPKG_CMAKE_SYSTEM_NAME STREQUAL "WindowsStore") AND VCPKG_LIBRARY_LINKAGE STREQUAL static) message(FATAL_ERROR "Qt5 doesn't currently support static builds. Please use a dynamic triplet instead.") endif() @@ -30,58 +30,109 @@ if (EXISTS ${CURRENT_BUILDTREES_DIR}/src/${ARCHIVE_NAME}) file(RENAME ${CURRENT_BUILDTREES_DIR}/src/${ARCHIVE_NAME} ${CURRENT_BUILDTREES_DIR}/src/${SRCDIR_NAME}) endif() +# Remove vendored dependencies to ensure they are not picked up by the build +foreach(DEPENDENCY freetype zlib harfbuzzng libjpeg libpng double-conversion) + if(EXISTS ${SOURCE_PATH}/src/3rdparty/${DEPENDENCY}) + file(REMOVE_RECURSE ${SOURCE_PATH}/src/3rdparty/${DEPENDENCY}) + endif() +endforeach() + +file(REMOVE_RECURSE ${SOURCE_PATH}/include/QtZlib) + vcpkg_apply_patches( SOURCE_PATH ${SOURCE_PATH} PATCHES "${CMAKE_CURRENT_LIST_DIR}/fix-system-pcre2.patch" "${CMAKE_CURRENT_LIST_DIR}/fix-system-freetype.patch" + "${CMAKE_CURRENT_LIST_DIR}/fix-system-pcre2-linux.patch" ) # This fixes issues on machines with default codepages that are not ASCII compatible, such as some CJK encodings set(ENV{_CL_} "/utf-8") -configure_qt( - SOURCE_PATH ${SOURCE_PATH} - OPTIONS - -confirm-license - -opensource - -system-zlib - -system-libjpeg - -system-libpng - -system-freetype - -system-pcre - -system-harfbuzz - -system-doubleconversion - -system-sqlite - -no-fontconfig - -sql-sqlite - -sql-psql - -nomake examples -nomake tests - -opengl desktop # other options are "-no-opengl" and "-opengl angle" - -mp - LIBJPEG_LIBS="-ljpeg" - OPTIONS_RELEASE - ZLIB_LIBS="-lzlib" - LIBPNG_LIBS="-llibpng16" - FREETYPE_LIBS="-lfreetype" - OPTIONS_DEBUG - ZLIB_LIBS="-lzlibd" - LIBPNG_LIBS="-llibpng16d" - PSQL_LIBS="-llibpqd" - FREETYPE_LIBS="-lfreetyped" +set(CORE_OPTIONS + -confirm-license + -opensource + -system-zlib + -system-libjpeg + -system-libpng + -system-freetype + -system-pcre + -system-harfbuzz + -system-doubleconversion + -no-fontconfig + -nomake examples -nomake tests ) +if(NOT VCPKG_CMAKE_SYSTEM_NAME OR VCPKG_CMAKE_SYSTEM_NAME STREQUAL "WindowsStore") + if(VCPKG_PLATFORM_TOOLSET MATCHES "v140") + set(PLATFORM "win32-msvc2015") + elseif(VCPKG_PLATFORM_TOOLSET MATCHES "v141") + set(PLATFORM "win32-msvc2017") + endif() + configure_qt( + SOURCE_PATH ${SOURCE_PATH} + PLATFORM ${PLATFORM} + OPTIONS + ${CORE_OPTIONS} + -sql-sqlite + -sql-psql + -system-sqlite + -mp + -opengl desktop # other options are "-no-opengl", "-opengl angle", and "-opengl desktop" + LIBJPEG_LIBS="-ljpeg" + OPTIONS_RELEASE + ZLIB_LIBS="-lzlib" + LIBPNG_LIBS="-llibpng16" + FREETYPE_LIBS="-lfreetype" + OPTIONS_DEBUG + ZLIB_LIBS="-lzlibd" + LIBPNG_LIBS="-llibpng16d" + PSQL_LIBS="-llibpqd" + FREETYPE_LIBS="-lfreetyped" + ) +elseif(VCPKG_CMAKE_SYSTEM_NAME STREQUAL "Linux") + configure_qt( + SOURCE_PATH ${SOURCE_PATH} + PLATFORM "linux-g++" + OPTIONS + ${CORE_OPTIONS} + -no-sqlite + -no-opengl # other options are "-no-opengl", "-opengl angle", and "-opengl desktop" + LIBJPEG_LIBS="-ljpeg" + OPTIONS_RELEASE + "QMAKE_LIBS_PRIVATE+=${CURRENT_INSTALLED_DIR}/lib/libpng16.a" + "QMAKE_LIBS_PRIVATE+=${CURRENT_INSTALLED_DIR}/lib/libz.a" + "ZLIB_LIBS=${CURRENT_INSTALLED_DIR}/lib/libz.a" + "LIBPNG_LIBS=${CURRENT_INSTALLED_DIR}/lib/libpng16.a" + "FREETYPE_LIBS=${CURRENT_INSTALLED_DIR}/lib/libfreetype.a" + "PSQL_LIBS=${CURRENT_INSTALLED_DIR}/lib/libpq.a ${CURRENT_INSTALLED_DIR}/lib/libssl.a ${CURRENT_INSTALLED_DIR}/lib/libcrypto.a" + OPTIONS_DEBUG + "QMAKE_LIBS_PRIVATE+=${CURRENT_INSTALLED_DIR}/debug/lib/libpng16d.a" + "QMAKE_LIBS_PRIVATE+=${CURRENT_INSTALLED_DIR}/debug/lib/libz.a" + "ZLIB_LIBS=${CURRENT_INSTALLED_DIR}/debug/lib/libz.a" + "LIBPNG_LIBS=${CURRENT_INSTALLED_DIR}/debug/lib/libpng16d.a" + "FREETYPE_LIBS=${CURRENT_INSTALLED_DIR}/debug/lib/libfreetyped.a" + "PSQL_LIBS=${CURRENT_INSTALLED_DIR}/debug/lib/libpqd.a ${CURRENT_INSTALLED_DIR}/debug/lib/libssl.a ${CURRENT_INSTALLED_DIR}/debug/lib/libcrypto.a" + ) +endif() + install_qt() file(RENAME ${CURRENT_PACKAGES_DIR}/lib/cmake ${CURRENT_PACKAGES_DIR}/share/cmake) file(REMOVE_RECURSE ${CURRENT_PACKAGES_DIR}/debug/lib/cmake) -file(GLOB BINARY_TOOLS "${CURRENT_PACKAGES_DIR}/bin/*.exe") +file(GLOB BINARY_TOOLS "${CURRENT_PACKAGES_DIR}/bin/*") +list(FILTER BINARY_TOOLS EXCLUDE REGEX "\\.dll\$") file(INSTALL ${BINARY_TOOLS} DESTINATION ${CURRENT_PACKAGES_DIR}/tools/qt5) file(REMOVE ${BINARY_TOOLS}) -file(GLOB BINARY_TOOLS "${CURRENT_PACKAGES_DIR}/debug/bin/*.exe") +file(GLOB BINARY_TOOLS "${CURRENT_PACKAGES_DIR}/debug/bin/*") +list(FILTER BINARY_TOOLS EXCLUDE REGEX "\\.dll\$") file(REMOVE ${BINARY_TOOLS}) file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/tools") +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}/qt_debug.conf ${CMAKE_CURRENT_LIST_DIR}/qt_release.conf DESTINATION ${CURRENT_PACKAGES_DIR}/tools/qt5) @@ -94,25 +145,37 @@ vcpkg_execute_required_process( vcpkg_copy_tool_dependencies(${CURRENT_PACKAGES_DIR}/tools/${PORT}) vcpkg_copy_tool_dependencies(${CURRENT_PACKAGES_DIR}/tools/qt5) -#--------------------------------------------------------------------------- -# qtmain(d) vs. Qt5AxServer(d) -#--------------------------------------------------------------------------- -# Qt applications have to either link to qtmain(d) or to Qt5AxServer(d), -# never both. See http://doc.qt.io/qt-5/activeqt-server.html for more info. -# -# Create manual-link folders: -file(MAKE_DIRECTORY ${CURRENT_PACKAGES_DIR}/lib/manual-link) -file(MAKE_DIRECTORY ${CURRENT_PACKAGES_DIR}/debug/lib/manual-link) -# -# Either have users explicitly link against qtmain.lib, qtmaind.lib: -file(COPY ${CURRENT_PACKAGES_DIR}/lib/qtmain.lib DESTINATION ${CURRENT_PACKAGES_DIR}/lib/manual-link) -file(COPY ${CURRENT_PACKAGES_DIR}/lib/qtmain.prl DESTINATION ${CURRENT_PACKAGES_DIR}/lib/manual-link) -file(REMOVE ${CURRENT_PACKAGES_DIR}/lib/qtmain.lib) -file(REMOVE ${CURRENT_PACKAGES_DIR}/lib/qtmain.prl) -file(COPY ${CURRENT_PACKAGES_DIR}/debug/lib/qtmaind.lib DESTINATION ${CURRENT_PACKAGES_DIR}/debug/lib/manual-link) -file(COPY ${CURRENT_PACKAGES_DIR}/debug/lib/qtmaind.prl DESTINATION ${CURRENT_PACKAGES_DIR}/debug/lib/manual-link) -file(REMOVE ${CURRENT_PACKAGES_DIR}/debug/lib/qtmaind.lib) -file(REMOVE ${CURRENT_PACKAGES_DIR}/debug/lib/qtmaind.prl) +if(EXISTS ${CURRENT_PACKAGES_DIR}/lib/qtmain.lib) + #--------------------------------------------------------------------------- + # qtmain(d) vs. Qt5AxServer(d) + #--------------------------------------------------------------------------- + # Qt applications have to either link to qtmain(d) or to Qt5AxServer(d), + # never both. See http://doc.qt.io/qt-5/activeqt-server.html for more info. + # + # Create manual-link folders: + file(MAKE_DIRECTORY ${CURRENT_PACKAGES_DIR}/lib/manual-link) + file(MAKE_DIRECTORY ${CURRENT_PACKAGES_DIR}/debug/lib/manual-link) + # + # Either have users explicitly link against qtmain.lib, qtmaind.lib: + file(COPY ${CURRENT_PACKAGES_DIR}/lib/qtmain.lib DESTINATION ${CURRENT_PACKAGES_DIR}/lib/manual-link) + file(COPY ${CURRENT_PACKAGES_DIR}/lib/qtmain.prl DESTINATION ${CURRENT_PACKAGES_DIR}/lib/manual-link) + file(REMOVE ${CURRENT_PACKAGES_DIR}/lib/qtmain.lib) + file(REMOVE ${CURRENT_PACKAGES_DIR}/lib/qtmain.prl) + file(COPY ${CURRENT_PACKAGES_DIR}/debug/lib/qtmaind.lib DESTINATION ${CURRENT_PACKAGES_DIR}/debug/lib/manual-link) + file(COPY ${CURRENT_PACKAGES_DIR}/debug/lib/qtmaind.prl DESTINATION ${CURRENT_PACKAGES_DIR}/debug/lib/manual-link) + file(REMOVE ${CURRENT_PACKAGES_DIR}/debug/lib/qtmaind.lib) + file(REMOVE ${CURRENT_PACKAGES_DIR}/debug/lib/qtmaind.prl) +endif() + +file(GLOB_RECURSE PRL_FILES "${CURRENT_PACKAGES_DIR}/lib/*.prl" "${CURRENT_PACKAGES_DIR}/debug/lib/*.prl") +file(TO_CMAKE_PATH "${CURRENT_INSTALLED_DIR}/lib" CMAKE_RELEASE_LIB_PATH) +file(TO_CMAKE_PATH "${CURRENT_INSTALLED_DIR}/debug/lib" CMAKE_DEBUG_LIB_PATH) +foreach(PRL_FILE IN LISTS PRL_FILES) + file(READ "${PRL_FILE}" _contents) + string(REPLACE "${CMAKE_RELEASE_LIB_PATH}" "\$\$[QT_INSTALL_LIBS]" _contents "${_contents}") + string(REPLACE "${CMAKE_DEBUG_LIB_PATH}" "\$\$[QT_INSTALL_LIBS]" _contents "${_contents}") + file(WRITE "${PRL_FILE}" "${_contents}") +endforeach() file(COPY ${CMAKE_CURRENT_LIST_DIR}/qtdeploy.ps1 DESTINATION ${CURRENT_PACKAGES_DIR}/plugins) file(COPY ${CMAKE_CURRENT_LIST_DIR}/qtdeploy.ps1 DESTINATION ${CURRENT_PACKAGES_DIR}/debug/plugins) diff --git a/ports/qt5-modularscripts/CONTROL b/ports/qt5-modularscripts/CONTROL index 502887c52..fd3f72392 100644 --- a/ports/qt5-modularscripts/CONTROL +++ b/ports/qt5-modularscripts/CONTROL @@ -1,3 +1,3 @@ Source: qt5-modularscripts -Version: 2 +Version: 3 Description: Vcpkg helpers to package qt5 modules diff --git a/ports/qt5-modularscripts/qt_modular_library.cmake b/ports/qt5-modularscripts/qt_modular_library.cmake index e733e02a5..1ead66d83 100644 --- a/ports/qt5-modularscripts/qt_modular_library.cmake +++ b/ports/qt5-modularscripts/qt_modular_library.cmake @@ -78,6 +78,16 @@ function(qt_modular_library NAME HASH) file(REMOVE_RECURSE ${CURRENT_PACKAGES_DIR}/debug/lib/cmake) endif() + file(GLOB_RECURSE PRL_FILES "${CURRENT_PACKAGES_DIR}/lib/*.prl" "${CURRENT_PACKAGES_DIR}/debug/lib/*.prl") + file(TO_CMAKE_PATH "${CURRENT_INSTALLED_DIR}/lib" CMAKE_RELEASE_LIB_PATH) + file(TO_CMAKE_PATH "${CURRENT_INSTALLED_DIR}/debug/lib" CMAKE_DEBUG_LIB_PATH) + foreach(PRL_FILE IN LISTS PRL_FILES) + file(READ "${PRL_FILE}" _contents) + string(REPLACE "${CMAKE_RELEASE_LIB_PATH}" "\$\$[QT_INSTALL_LIBS]" _contents "${_contents}") + string(REPLACE "${CMAKE_DEBUG_LIB_PATH}" "\$\$[QT_INSTALL_LIBS]" _contents "${_contents}") + file(WRITE "${PRL_FILE}" "${_contents}") + endforeach() + file(GLOB RELEASE_LIBS "${CURRENT_PACKAGES_DIR}/lib/*") if(NOT RELEASE_LIBS) file(REMOVE_RECURSE ${CURRENT_PACKAGES_DIR}/lib) diff --git a/ports/qwt/CONTROL b/ports/qwt/CONTROL index 9dcf19f5b..383ac11ce 100644 --- a/ports/qwt/CONTROL +++ b/ports/qwt/CONTROL @@ -1,4 +1,4 @@ Source: qwt -Version: 6.1.3-4 +Version: 6.1.3-5 Description: Qt widgets library for technical applications -Build-Depends: qt5-base, qt5-svg +Build-Depends: qt5-base, qt5-svg, qt5-tools diff --git a/ports/recast/CONTROL b/ports/recast/CONTROL index 34bb2b34a..4cc61e30d 100644 --- a/ports/recast/CONTROL +++ b/ports/recast/CONTROL @@ -1,3 +1,3 @@ Source: recast -Version: 1.5.1 +Version: 1.5.1-1 Description: Navigation-mesh Toolset for Games diff --git a/ports/recast/portfile.cmake b/ports/recast/portfile.cmake index 9c26131da..7d9f08f93 100644 --- a/ports/recast/portfile.cmake +++ b/ports/recast/portfile.cmake @@ -1,5 +1,10 @@ include(vcpkg_common_functions) +if (VCPKG_LIBRARY_LINKAGE STREQUAL dynamic) + message(WARNING "Dynamic not supported, building static") + set(VCPKG_LIBRARY_LINKAGE static) +endif() + vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO recastnavigation/recastnavigation diff --git a/ports/rs-core-lib/CONTROL b/ports/rs-core-lib/CONTROL index 03e5f4955..a6f837d0a 100644 --- a/ports/rs-core-lib/CONTROL +++ b/ports/rs-core-lib/CONTROL @@ -1,4 +1,4 @@ Source: rs-core-lib -Version: 2018-03-17 +Version: 2018-03-29 Description: Minimal common utilities by Ross Smith diff --git a/ports/rs-core-lib/portfile.cmake b/ports/rs-core-lib/portfile.cmake index 47e31c9bf..cca3be0a3 100644 --- a/ports/rs-core-lib/portfile.cmake +++ b/ports/rs-core-lib/portfile.cmake @@ -3,8 +3,8 @@ include(vcpkg_common_functions) vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO CaptainCrowbar/rs-core-lib - REF c5b4522c336cd2348c9b65b01802ef1c4865fca2 - SHA512 a720d2f4cf6ef9dda1ce3e6bccf1495a8d29d3765d7456a5e8b79342ddc13f68428d17ea1e2993cb181450b0c2dca4c377735eef0f2f2e8a6bd66e6f2b78fd6a + REF 3300d39fef567adf90f59d07223e55ca44ed4f98 + SHA512 0e696a94ab71ca29c61075d917a26b01057f657537c5516cb3bf2fd046d5c61f7e74d83a7c2eba2d4d923f3bd8b125f61c6732d09ade59b0995f42eb3df22a17 HEAD_REF master ) diff --git a/ports/shapelib/CONTROL b/ports/shapelib/CONTROL index 7d37eb8aa..57fbecb53 100644 --- a/ports/shapelib/CONTROL +++ b/ports/shapelib/CONTROL @@ -1,3 +1,3 @@ Source: shapelib -Version: 1.4.1 +Version: 1.4.1-1 Description: Shapefile C Library is simple C API for reading and writing ESRI Shapefiles diff --git a/ports/shapelib/option-build-test.patch b/ports/shapelib/option-build-test.patch new file mode 100644 index 000000000..c91410f38 --- /dev/null +++ b/ports/shapelib/option-build-test.patch @@ -0,0 +1,13 @@ +diff --git a/CMakeLists.txt b/CMakeLists.txt +index c3ef935..845ec06 100644 +--- a/CMakeLists.txt ++++ b/CMakeLists.txt +@@ -148,7 +148,7 @@ set(executables + find_program(BASH_EXECUTABLE bash) + find_program(SED_EXECUTABLE sed) + if(BASH_EXECUTABLE AND SED_EXECUTABLE) +- set(BUILD_TEST ON) ++ option(BUILD_TEST "" ON) + else(BASH_EXECUTABLE AND SED_EXECUTABLE) + message(STATUS "WARNING: sed or bash not available so disabling testing") + endif(BASH_EXECUTABLE AND SED_EXECUTABLE) diff --git a/ports/shapelib/portfile.cmake b/ports/shapelib/portfile.cmake index 0f2787689..eed76736f 100644 --- a/ports/shapelib/portfile.cmake +++ b/ports/shapelib/portfile.cmake @@ -11,10 +11,17 @@ vcpkg_download_distfile(ARCHIVE ) vcpkg_extract_source_archive(${ARCHIVE}) +vcpkg_apply_patches( + SOURCE_PATH ${SOURCE_PATH} + PATCHES ${CMAKE_CURRENT_LIST_DIR}/option-build-test.patch +) + vcpkg_configure_cmake( SOURCE_PATH ${SOURCE_PATH} PREFER_NINJA - OPTIONS -DBUILD_TEST=OFF) + OPTIONS + -DBUILD_TEST=OFF +) vcpkg_install_cmake() @@ -22,15 +29,19 @@ file(REMOVE_RECURSE ${CURRENT_PACKAGES_DIR}/debug/include) file(REMOVE_RECURSE ${CURRENT_PACKAGES_DIR}/debug/share) file(GLOB EXES "${CURRENT_PACKAGES_DIR}/bin/*.exe") -file(COPY ${EXES} DESTINATION ${CURRENT_PACKAGES_DIR}/tools/shapelib) -file(REMOVE ${EXES}) +if(EXES) + file(COPY ${EXES} DESTINATION ${CURRENT_PACKAGES_DIR}/tools/shapelib) + file(REMOVE ${EXES}) +endif() file(GLOB DEBUG_EXES "${CURRENT_PACKAGES_DIR}/debug/bin/*.exe") -file(REMOVE ${DEBUG_EXES}) +if(DEBUG_EXES) + file(REMOVE ${DEBUG_EXES}) +endif() -if(VCPKG_LIBRARY_LINKAGE STREQUAL static) - file(REMOVE_RECURSE ${CURRENT_PACKAGES_DIR}/bin) - file(REMOVE_RECURSE ${CURRENT_PACKAGES_DIR}/debug/bin) +if(VCPKG_LIBRARY_LINKAGE STREQUAL "static") + file(REMOVE_RECURSE ${CURRENT_PACKAGES_DIR}/bin) + file(REMOVE_RECURSE ${CURRENT_PACKAGES_DIR}/debug/bin) endif() file(COPY ${SOURCE_PATH}/COPYING DESTINATION ${CURRENT_PACKAGES_DIR}/share/shapelib) diff --git a/ports/soundtouch/CMakeLists.txt b/ports/soundtouch/CMakeLists.txt new file mode 100644 index 000000000..a15daefe4 --- /dev/null +++ b/ports/soundtouch/CMakeLists.txt @@ -0,0 +1,32 @@ +cmake_minimum_required(VERSION 3.5) +project(soundtouch CXX) + +if(CMAKE_SIZEOF_VOID_P EQUAL 8) + set(ARCH_SUFFIX _x64) +else() + set(ARCH_SUFFIX) +endif() + +if(BUILD_SHARED_LIBS) + set(TYPE_SUFFIX Dll) +else() + set(TYPE_SUFFIX $<$:D>) +endif() + +file(GLOB SOUNDTOUCH_SOURCES source/SoundTouch/*.cpp) +add_library(libsoundtouch ${SOUNDTOUCH_SOURCES}) +target_include_directories(libsoundtouch PUBLIC include) +set_target_properties(libsoundtouch PROPERTIES OUTPUT_NAME SoundTouch${TYPE_SUFFIX}${ARCH_SUFFIX}) +if(BUILD_SHARED_LIBS) + target_compile_definitions(libsoundtouch PRIVATE -DDLL_EXPORTS) + target_sources(libsoundtouch PRIVATE + source/SoundTouchDLL/SoundTouchDLL.cpp + source/SoundTouchDLL/SoundTouchDLL.rc + ) +endif() + +install(TARGETS libsoundtouch + RUNTIME DESTINATION bin + LIBRARY DESTINATION lib + ARCHIVE DESTINATION lib +) diff --git a/ports/soundtouch/CONTROL b/ports/soundtouch/CONTROL index cc37ea89f..7ae158b88 100644 --- a/ports/soundtouch/CONTROL +++ b/ports/soundtouch/CONTROL @@ -1,4 +1,4 @@ Source: soundtouch -Version: 2.0.0 +Version: 2.0.0-1 Description: SoundTouch is an open-source audio processing library for changing the Tempo, Pitch and Playback Rates of audio streams or audio files. Build-Depends: atlmfc diff --git a/ports/soundtouch/portfile.cmake b/ports/soundtouch/portfile.cmake index cadf5e705..b7fb1fb45 100644 --- a/ports/soundtouch/portfile.cmake +++ b/ports/soundtouch/portfile.cmake @@ -1,11 +1,15 @@ include(vcpkg_common_functions) # NOTE: SoundTouch has a static c++ version too, but entirely different headers, api, etc -if (VCPKG_LIBRARY_LINKAGE STREQUAL static) +if(VCPKG_LIBRARY_LINKAGE STREQUAL "static") message(STATUS "Warning: Static building not supported. Building dynamic.") set(VCPKG_LIBRARY_LINKAGE dynamic) endif() +if(VCPKG_CRT_LINKAGE STREQUAL "static") + message(FATAL_ERROR "Refusing to build DLL with static CRT linkage.") +endif() + if(VCPKG_CMAKE_SYSTEM_NAME STREQUAL "WindowsStore") message(FATAL_ERROR "WindowsStore not supported") endif() @@ -18,56 +22,18 @@ vcpkg_download_distfile(ARCHIVE FILENAME "soundtouch-${VERSION}.zip" SHA512 50ef36b6cd21c16e235b908c5518e29b159b11f658a014c47fe767d3d8acebaefefec0ce253b4ed322cbd26387c69c0ed464ddace0c098e61d56d55c198117a5 ) - -# MSBuild performs in-source builds, so to ensure reliability we must clear them each time -file(REMOVE_RECURSE ${CURRENT_BUILDTREES_DIR}/src) - vcpkg_extract_source_archive(${ARCHIVE}) -vcpkg_execute_required_process( - COMMAND "devenv.exe" - "SoundTouchDLL.sln" - /Upgrade - WORKING_DIRECTORY ${SOURCE_PATH}/source/SoundTouchDLL - LOGNAME upgrade-Packet-${TARGET_TRIPLET} +file(COPY ${CMAKE_CURRENT_LIST_DIR}/CMakeLists.txt DESTINATION ${SOURCE_PATH}) + +vcpkg_configure_cmake( + SOURCE_PATH ${SOURCE_PATH} + PREFER_NINJA ) -IF (TRIPLET_SYSTEM_ARCH MATCHES "x64") - # There is no x64 Debug target - SET(BUILD_RELEASE_CONFIGURATION "ReleaseX64") - SET(BUILD_DEBUG_CONFIGURATION "ReleaseX64") -ELSE() - SET(BUILD_RELEASE_CONFIGURATION "Release") - SET(BUILD_DEBUG_CONFIGURATION "Debug") -ENDIF() - -SET(BUILD_ARCH "Win32") - -vcpkg_build_msbuild( - PROJECT_PATH ${SOURCE_PATH}/source/SoundTouchDLL/SoundTouchDLL.sln - PLATFORM ${BUILD_ARCH} - RELEASE_CONFIGURATION ${BUILD_RELEASE_CONFIGURATION} - DEBUG_CONFIGURATION ${BUILD_DEBUG_CONFIGURATION} -) +vcpkg_install_cmake() file(INSTALL ${SOURCE_PATH}/source/SoundTouchDLL/SoundTouchDLL.h DESTINATION ${CURRENT_PACKAGES_DIR}/include) -# Handle libraries -IF (BUILD_RELEASE_CONFIGURATION STREQUAL ReleaseX64) - file(INSTALL ${SOURCE_PATH}/lib/SoundTouch_x64.dll DESTINATION ${CURRENT_PACKAGES_DIR}/bin) - file(INSTALL ${SOURCE_PATH}/lib/SoundTouchDll_x64.lib DESTINATION ${CURRENT_PACKAGES_DIR}/lib) -ELSE() - file(INSTALL ${SOURCE_PATH}/lib/SoundTouch.dll DESTINATION ${CURRENT_PACKAGES_DIR}/bin) - file(INSTALL ${SOURCE_PATH}/lib/SoundTouchDll.lib DESTINATION ${CURRENT_PACKAGES_DIR}/lib) -ENDIF() - -IF (BUILD_DEBUG_CONFIGURATION STREQUAL ReleaseX64) - file(INSTALL ${SOURCE_PATH}/lib/SoundTouch_x64.dll DESTINATION ${CURRENT_PACKAGES_DIR}/debug/bin) - file(INSTALL ${SOURCE_PATH}/lib/SoundTouchDll_x64.lib DESTINATION ${CURRENT_PACKAGES_DIR}/debug/lib) -ELSE() - file(INSTALL ${SOURCE_PATH}/lib/SoundTouchD.dll DESTINATION ${CURRENT_PACKAGES_DIR}/debug/bin) - file(INSTALL ${SOURCE_PATH}/lib/SoundTouchDllD.lib DESTINATION ${CURRENT_PACKAGES_DIR}/debug/lib) -ENDIF() - file(COPY ${SOURCE_PATH}/COPYING.TXT DESTINATION ${CURRENT_PACKAGES_DIR}/share/soundtouch) file(RENAME ${CURRENT_PACKAGES_DIR}/share/soundtouch/COPYING.TXT ${CURRENT_PACKAGES_DIR}/share/soundtouch/copyright) diff --git a/ports/tbb/CONTROL b/ports/tbb/CONTROL index 1de2e57a5..0e19d650b 100644 --- a/ports/tbb/CONTROL +++ b/ports/tbb/CONTROL @@ -1,3 +1,3 @@ Source: tbb -Version: 2018_U2 +Version: 2018_U3 Description: Intel's Threading Building Blocks. diff --git a/ports/tbb/portfile.cmake b/ports/tbb/portfile.cmake index 12e07ba78..f74d096de 100644 --- a/ports/tbb/portfile.cmake +++ b/ports/tbb/portfile.cmake @@ -10,8 +10,8 @@ include(vcpkg_common_functions) vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO 01org/tbb - REF 2018_U2 - SHA512 a94b55bcabec47424be1c2d4b7bf3502a545bc714250a260e152b00431420094dbab64c0355bd0004ee9ad10d85c7b920969bf4b6d9a30b3697c7c5202518841 + REF 2018_U3 + SHA512 e92a2aabcdd456c1676eb9ce20653908a867ea18ff118f5f039823f5a10a0da3de61d0044774ad38b137e636fa8602af009dfeb59c84005fe90c6206aa3306ab HEAD_REF tbb_2018) if(TRIPLET_SYSTEM_ARCH STREQUAL x86) diff --git a/ports/thrift/CONTROL b/ports/thrift/CONTROL index 1e0037736..82524e78d 100644 --- a/ports/thrift/CONTROL +++ b/ports/thrift/CONTROL @@ -1,4 +1,4 @@ Source: thrift -Version: 2018-03-20 +Version: 2018-03-29 Build-Depends: zlib, libevent, openssl, boost-range, boost-smart-ptr, boost-date-time, boost-locale, boost-scope-exit Description: Apache Thrift is a software project spanning a variety of programming languages and use cases. Our goal is to make reliable, performant communication and data serialization across languages as efficient and seamless as possible. Originally developed at Facebook, Thrift was open sourced in April 2007 and entered the Apache Incubator in May, 2008. Thrift became an Apache TLP in October, 2010. diff --git a/ports/thrift/portfile.cmake b/ports/thrift/portfile.cmake index 968a5b109..0293cca6f 100644 --- a/ports/thrift/portfile.cmake +++ b/ports/thrift/portfile.cmake @@ -15,8 +15,8 @@ vcpkg_find_acquire_program(BISON) vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO apache/thrift - REF 22bd3450c6e97e348d64fb6a75171e8ced79d1e4 - SHA512 5774fd332daac80891ac25c6188e415bf5335ffecc636dc120500f03b6ae23f9317c65dbc703cc89946a894f12c6805f396fd42e763d1e0d3ccfe6398357d321 + REF 930428438c0b6c8f60560cbb7dcad79042badacb + SHA512 b446126a8f697903abbdafcd8cd9a348fc97d34b2a207592cae1801e481b5159f92b7b0296a3531cd8f2a9e223e051f71ea63ce5da2dd2f67364db9bfd84dcf3 HEAD_REF master ) diff --git a/ports/unrar/CONTROL b/ports/unrar/CONTROL index ce6d4dab8..d9c586c6a 100644 --- a/ports/unrar/CONTROL +++ b/ports/unrar/CONTROL @@ -1,3 +1,3 @@ Source: unrar -Version: 5.5.8 +Version: 5.5.8-1 Description: rarlab's unrar libary diff --git a/ports/unrar/portfile.cmake b/ports/unrar/portfile.cmake index 0528c8b97..4ad834d15 100644 --- a/ports/unrar/portfile.cmake +++ b/ports/unrar/portfile.cmake @@ -6,7 +6,8 @@ set(UNRAR_URL http://www.rarlab.com/rar/${UNRAR_FILENAME}) set(SOURCE_PATH ${CURRENT_BUILDTREES_DIR}/src/unrar) if (VCPKG_LIBRARY_LINKAGE STREQUAL "static") - message(FATAL_ERROR "Unrar does not currently support building statically") + message(STATUS "Unrar buildsystem doesn't support static building. Building dynamic instead.") + set(VCPKG_LIBRARY_LINKAGE dynamic) endif() #SRC diff --git a/ports/yoga/CONTROL b/ports/yoga/CONTROL index c8ff36c24..c4bbe1a69 100644 --- a/ports/yoga/CONTROL +++ b/ports/yoga/CONTROL @@ -1,3 +1,3 @@ Source: yoga -Version: 1.7.0 +Version: 1.7.0-1 Description: Yoga is a cross-platform layout engine which implements Flexbox diff --git a/ports/yoga/portfile.cmake b/ports/yoga/portfile.cmake index e6dc1c709..a261d5106 100644 --- a/ports/yoga/portfile.cmake +++ b/ports/yoga/portfile.cmake @@ -12,7 +12,8 @@ include(vcpkg_common_functions) if (VCPKG_LIBRARY_LINKAGE STREQUAL dynamic) - message(FATAL_ERROR "Error: Dynamic building not supported yet.") + message(WARNING "Dynamic not supported, building static") + set(VCPKG_LIBRARY_LINKAGE static) elseif (VCPKG_CMAKE_SYSTEM_NAME STREQUAL WindowsStore) message(FATAL_ERROR "Error: UWP builds not supported yet.") endif() diff --git a/ports/zeromq/CONTROL b/ports/zeromq/CONTROL index 4ea44046b..a7f21a9b8 100644 --- a/ports/zeromq/CONTROL +++ b/ports/zeromq/CONTROL @@ -1,3 +1,3 @@ Source: zeromq -Version: 2018-03-20 +Version: 2018-03-29 Description: The ZeroMQ lightweight messaging kernel is a library which extends the standard socket interfaces with features traditionally provided by specialised messaging middleware products diff --git a/ports/zeromq/portfile.cmake b/ports/zeromq/portfile.cmake index 062ed6b48..3220d8f3a 100644 --- a/ports/zeromq/portfile.cmake +++ b/ports/zeromq/portfile.cmake @@ -3,8 +3,8 @@ include(vcpkg_common_functions) vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO zeromq/libzmq - REF 15b3dccf47179a88311c84d6ef250565abd05182 - SHA512 568d315f48c194f7db3df59ecf70a6625e916a4c258a3f5ad1d7b9e5899afd6a7d825f4fb8811cb49dcd752142952a9bd6e4c31af6572373462a4821d6a1a2bd + REF 2aa54d662048f420ac0dbd5d9b46559963a675f2 + SHA512 48abea6fdac733ff7c2da7b3f45f129dc904d5d5a59f41f4f47419f5c2483a5227aec1a605d76422071045ea82c76ceb55a521bb80fe5d7f77d5d01c43acb3e6 HEAD_REF master ) diff --git a/scripts/VcpkgPowershellUtils.ps1 b/scripts/VcpkgPowershellUtils.ps1 index d9c9e3760..92e0f21d0 100644 --- a/scripts/VcpkgPowershellUtils.ps1 +++ b/scripts/VcpkgPowershellUtils.ps1 @@ -110,9 +110,9 @@ function vcpkgGetSHA256([Parameter(Mandatory=$true)][string]$filePath) function vcpkgCheckEqualFileHash( [Parameter(Mandatory=$true)][string]$filePath, [Parameter(Mandatory=$true)][string]$expectedHash, - [Parameter(Mandatory=$true)][string]$actualHash ) + [Parameter(Mandatory=$true)][string]$actualHash) { - if ($expectedDownloadedFileHash -ne $downloadedFileHash) + if ($expectedHash -ne $actualHash) { Write-Host ("`nFile does not have expected hash:`n" + " File path: [ $filePath ]`n" + @@ -150,7 +150,6 @@ function vcpkgDownloadFile( [Parameter(Mandatory=$true)][string]$url, $downloadPartPath = "$downloadPath.part" vcpkgRemoveItem $downloadPartPath - $wc = New-Object System.Net.WebClient if (!$wc.Proxy.IsBypassed($url)) { @@ -161,7 +160,7 @@ function vcpkgDownloadFile( [Parameter(Mandatory=$true)][string]$url, Move-Item -Path $downloadPartPath -Destination $downloadPath } -function vcpkgExtractFile( [Parameter(Mandatory=$true)][string]$file, +function vcpkgExtractFile( [Parameter(Mandatory=$true)][string]$archivePath, [Parameter(Mandatory=$true)][string]$destinationDir, [Parameter(Mandatory=$true)][string]$outFilename) { @@ -176,18 +175,18 @@ function vcpkgExtractFile( [Parameter(Mandatory=$true)][string]$file, if (vcpkgHasCommand -commandName 'Microsoft.PowerShell.Archive\Expand-Archive') { Write-Verbose("Extracting with Microsoft.PowerShell.Archive\Expand-Archive") - Microsoft.PowerShell.Archive\Expand-Archive -path $file -destinationpath $destinationPartial + Microsoft.PowerShell.Archive\Expand-Archive -path $archivePath -destinationpath $destinationPartial } elseif (vcpkgHasCommand -commandName 'Pscx\Expand-Archive') { Write-Verbose("Extracting with Pscx\Expand-Archive") - Pscx\Expand-Archive -path $file -OutputPath $destinationPartial + Pscx\Expand-Archive -path $archivePath -OutputPath $destinationPartial } else { Write-Verbose("Extracting via shell") $shell = new-object -com shell.application - $zip = $shell.NameSpace($(Get-Item $file).fullname) + $zip = $shell.NameSpace($(Get-Item $archivePath).fullname) foreach($item in $zip.items()) { # Piping to Out-Null is used to block until finished @@ -195,11 +194,14 @@ function vcpkgExtractFile( [Parameter(Mandatory=$true)][string]$file, } } - $itemCount = @(Get-ChildItem "$destinationPartial").Count + $items = @(Get-ChildItem "$destinationPartial") + $itemCount = $items.Count if ($itemCount -eq 1) { - Move-Item -Path "$destinationPartial\*" -Destination $output + $item = $items | Select-Object -first 1 + Write-Host "$item" + Move-Item -Path "$destinationPartial\$item" -Destination $output vcpkgRemoveItem $destinationPartial } else diff --git a/scripts/buildsystems/vcpkg.cmake b/scripts/buildsystems/vcpkg.cmake index 10e3c3f13..0c32b22fb 100644 --- a/scripts/buildsystems/vcpkg.cmake +++ b/scripts/buildsystems/vcpkg.cmake @@ -44,7 +44,7 @@ else() elseif(_VCPKG_CL MATCHES "arm/cl.exe$") set(_VCPKG_TARGET_TRIPLET_ARCH arm) elseif(_VCPKG_CL MATCHES "arm64/cl.exe$") - set(_VCPKG_TARGET_TRIPLET_ARCH arm64) + set(_VCPKG_TARGET_TRIPLET_ARCH arm64) elseif(_VCPKG_CL MATCHES "bin/cl.exe$" OR _VCPKG_CL MATCHES "x86/cl.exe$") set(_VCPKG_TARGET_TRIPLET_ARCH x86) elseif(CMAKE_HOST_SYSTEM_PROCESSOR STREQUAL "x86_64") @@ -110,16 +110,6 @@ list(APPEND CMAKE_LIBRARY_PATH ${_VCPKG_INSTALLED_DIR}/${VCPKG_TARGET_TRIPLET}/lib/manual-link ) -if (NOT DEFINED CMAKE_SYSTEM_VERSION AND _VCPKG_TARGET_TRIPLET_PLAT MATCHES "windows|uwp") - include(${_VCPKG_ROOT_DIR}/scripts/cmake/vcpkg_get_windows_sdk.cmake) - # This is used as an implicit parameter for vcpkg_get_windows_sdk - set(VCPKG_ROOT_DIR ${_VCPKG_ROOT_DIR}) - vcpkg_get_windows_sdk(WINDOWS_SDK_VERSION) - unset(VCPKG_ROOT_DIR) - set(CMAKE_SYSTEM_VERSION ${WINDOWS_SDK_VERSION} CACHE STRING "Windows SDK version") - message(STATUS "Found Windows SDK ${WINDOWS_SDK_VERSION}") -endif() - file(TO_CMAKE_PATH "$ENV{PROGRAMFILES}" _programfiles) set(CMAKE_SYSTEM_IGNORE_PATH "${_programfiles}/OpenSSL" diff --git a/scripts/cmake/vcpkg_find_acquire_program.cmake b/scripts/cmake/vcpkg_find_acquire_program.cmake index 083b86fc2..64d0c7599 100644 --- a/scripts/cmake/vcpkg_find_acquire_program.cmake +++ b/scripts/cmake/vcpkg_find_acquire_program.cmake @@ -40,6 +40,7 @@ function(vcpkg_find_acquire_program VAR) endif() unset(NOEXTRACT) + unset(_vfa_RENAME) unset(SUBDIR) unset(REQUIRED_INTERPRETER) @@ -67,11 +68,13 @@ function(vcpkg_find_acquire_program VAR) set(HASH df7aaba094e17832688c88993997612a2e2c96cc3dc14ca3e8347b44c7762115f5a7fc6d7f20be402553aaa4c9e43ddfcf6228f581cfe89289bae550de151b36) elseif(VAR MATCHES "YASM") set(PROGNAME yasm) - set(PATHS ${DOWNLOADS}/tools/yasm) - set(URL "http://www.tortall.net/projects/yasm/releases/yasm-1.3.0-win32.exe") - set(ARCHIVE "yasm.exe") + set(SUBDIR 1.3.0.6) + set(PATHS ${DOWNLOADS}/tools/yasm/${SUBDIR}) + set(URL "https://www.tortall.net/projects/yasm/snapshots/v1.3.0.6.g1962/yasm-1.3.0.6.g1962.exe") + set(ARCHIVE "yasm-1.3.0.6.g1962.exe") + set(_vfa_RENAME "yasm.exe") set(NOEXTRACT ON) - set(HASH 850b26be5bbbdaeaf45ac39dd27f69f1a85e600c35afbd16b9f621396b3c7a19863ea3ff316b025b578fce0a8280eef2203306a2b3e46ee1389abb65313fb720) + set(HASH c1945669d983b632a10c5ff31e86d6ecbff143c3d8b2c433c0d3d18f84356d2b351f71ac05fd44e5403651b00c31db0d14615d7f9a6ecce5750438d37105c55b) elseif(VAR MATCHES "PYTHON3") set(PROGNAME python) set(SUBDIR "python3") @@ -205,7 +208,11 @@ function(vcpkg_find_acquire_program VAR) file(MAKE_DIRECTORY ${DOWNLOADS}/tools/${PROGNAME}/${SUBDIR}) if(DEFINED NOEXTRACT) - file(COPY ${ARCHIVE_PATH} DESTINATION ${DOWNLOADS}/tools/${PROGNAME}/${SUBDIR}) + if(DEFINED _vfa_RENAME) + file(INSTALL ${ARCHIVE_PATH} DESTINATION ${DOWNLOADS}/tools/${PROGNAME}/${SUBDIR} RENAME ${_vfa_RENAME}) + else() + file(COPY ${ARCHIVE_PATH} DESTINATION ${DOWNLOADS}/tools/${PROGNAME}/${SUBDIR}) + endif() else() get_filename_component(ARCHIVE_EXTENSION ${ARCHIVE} EXT) string(TOLOWER "${ARCHIVE_EXTENSION}" ARCHIVE_EXTENSION) diff --git a/scripts/cmake/vcpkg_fixup_cmake_targets.cmake b/scripts/cmake/vcpkg_fixup_cmake_targets.cmake index 7f1f827c2..475047737 100644 --- a/scripts/cmake/vcpkg_fixup_cmake_targets.cmake +++ b/scripts/cmake/vcpkg_fixup_cmake_targets.cmake @@ -81,7 +81,7 @@ function(vcpkg_fixup_cmake_targets) endif() endif() - file(GLOB UNUSED_FILES + file(GLOB_RECURSE UNUSED_FILES "${DEBUG_SHARE}/*[Tt]argets.cmake" "${DEBUG_SHARE}/*[Cc]onfig.cmake" "${DEBUG_SHARE}/*[Cc]onfigVersion.cmake" @@ -91,10 +91,10 @@ function(vcpkg_fixup_cmake_targets) file(REMOVE ${UNUSED_FILES}) endif() - file(GLOB RELEASE_TARGETS + file(GLOB_RECURSE RELEASE_TARGETS "${RELEASE_SHARE}/*-release.cmake" ) - foreach(RELEASE_TARGET ${RELEASE_TARGETS}) + 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/([^ \"]+\\.exe)" "\${_IMPORT_PREFIX}/tools/${PORT}/\\1" _contents "${_contents}") @@ -102,25 +102,25 @@ function(vcpkg_fixup_cmake_targets) endforeach() if(NOT DEFINED VCPKG_BUILD_TYPE OR VCPKG_BUILD_TYPE STREQUAL "debug") - file(GLOB DEBUG_TARGETS + file(GLOB_RECURSE DEBUG_TARGETS "${DEBUG_SHARE}/*-debug.cmake" ) - foreach(DEBUG_TARGET ${DEBUG_TARGETS}) - get_filename_component(DEBUG_TARGET_NAME ${DEBUG_TARGET} NAME) + 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/([^ \"]+\\.exe)" "\${_IMPORT_PREFIX}/tools/${PORT}/\\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 ${CURRENT_PACKAGES_DIR}/${_vfct_TARGET_PATH}/${DEBUG_TARGET_NAME} "${_contents}") + file(WRITE ${RELEASE_SHARE}/${DEBUG_TARGET_REL} "${_contents}") file(REMOVE ${DEBUG_TARGET}) endforeach() endif() - file(GLOB MAIN_TARGETS "${RELEASE_SHARE}/*[Tt]argets.cmake") - foreach(MAIN_TARGET ${MAIN_TARGETS}) + file(GLOB_RECURSE MAIN_TARGETS "${RELEASE_SHARE}/*[Tt]argets.cmake") + foreach(MAIN_TARGET IN LISTS MAIN_TARGETS) file(READ ${MAIN_TARGET} _contents) string(REGEX REPLACE "get_filename_component\\(_IMPORT_PREFIX \"\\\${CMAKE_CURRENT_LIST_FILE}\" PATH\\)(\nget_filename_component\\(_IMPORT_PREFIX \"\\\${_IMPORT_PREFIX}\" PATH\\))*" @@ -133,8 +133,8 @@ function(vcpkg_fixup_cmake_targets) file(WRITE ${MAIN_TARGET} "${_contents}") endforeach() - file(GLOB MAIN_CONFIGS "${RELEASE_SHARE}/*[Cc]onfig.cmake") - foreach(MAIN_CONFIG ${MAIN_CONFIGS}) + file(GLOB_RECURSE MAIN_CONFIGS "${RELEASE_SHARE}/*[Cc]onfig.cmake") + foreach(MAIN_CONFIG IN LISTS MAIN_CONFIGS) file(READ ${MAIN_CONFIG} _contents) string(REGEX REPLACE "get_filename_component\\(_IMPORT_PREFIX \"\\\${CMAKE_CURRENT_LIST_FILE}\" PATH\\)(\nget_filename_component\\(_IMPORT_PREFIX \"\\\${_IMPORT_PREFIX}\" PATH\\))*" diff --git a/scripts/fetchTool.ps1 b/scripts/fetchTool.ps1 index ff9b5d9bf..26eedac3b 100644 --- a/scripts/fetchTool.ps1 +++ b/scripts/fetchTool.ps1 @@ -25,7 +25,7 @@ function fetchToolInternal([Parameter(Mandatory=$true)][string]$tool) throw "Unkown tool $tool" } - $exePath = "$downloadsDir\$(@($toolData.exeRelativePath)[0])" + $exePath = "$downloadsDir\$($toolData.exeRelativePath)" if (Test-Path $exePath) { @@ -35,22 +35,22 @@ function fetchToolInternal([Parameter(Mandatory=$true)][string]$tool) $isArchive = vcpkgHasProperty -object $toolData -propertyName "archiveRelativePath" if ($isArchive) { - $downloadPath = "$downloadsDir\$(@($toolData.archiveRelativePath)[0])" + $downloadPath = "$downloadsDir\$($toolData.archiveRelativePath)" } else { - $downloadPath = "$downloadsDir\$(@($toolData.exeRelativePath)[0])" + $downloadPath = "$downloadsDir\$($toolData.exeRelativePath)" } - [String]$url = @($toolData.url)[0] + [String]$url = $toolData.url if (!(Test-Path $downloadPath)) { Write-Host "Downloading $tool..." vcpkgDownloadFile $url $downloadPath - Write-Host "Downloading $tool has completed successfully." + Write-Host "Downloading $tool... done." } - $expectedDownloadedFileHash = @($toolData.sha256)[0] + $expectedDownloadedFileHash = $toolData.sha256 $downloadedFileHash = vcpkgGetSHA256 $downloadPath vcpkgCheckEqualFileHash -filePath $downloadPath -expectedHash $expectedDownloadedFileHash -actualHash $downloadedFileHash @@ -58,13 +58,14 @@ function fetchToolInternal([Parameter(Mandatory=$true)][string]$tool) { $outFilename = (Get-ChildItem $downloadPath).BaseName Write-Host "Extracting $tool..." - vcpkgExtractFile -File $downloadPath -DestinationDir $downloadsDir -outFilename $outFilename - Write-Host "Extracting $tool has completed successfully." + vcpkgExtractFile -ArchivePath $downloadPath -DestinationDir $downloadsDir -outFilename $outFilename + Write-Host "Extracting $tool... done." } if (-not (Test-Path $exePath)) { - throw ("Could not detect or download " + $tool) + Write-Error "Could not detect or download $tool" + throw } return $exePath diff --git a/scripts/vcpkgTools.xml b/scripts/vcpkgTools.xml index 9c78e92d9..477584c5a 100644 --- a/scripts/vcpkgTools.xml +++ b/scripts/vcpkgTools.xml @@ -6,12 +6,20 @@ https://cmake.org/files/v3.10/cmake-3.10.2-win32-x86.zip f5f7e41a21d0e9b655aca58498b08e17ecd27796bf82837e2c84435359169dd6 cmake-3.10.2-win32-x86.zip - cmake-3.10.2-Darwin-x86_64/CMake.app/Contents/bin/cmake - https://cmake.org/files/v3.10/cmake-3.10.2-Darwin-x86_64.tar.gz - cmake-3.10.2-Darwin-x86_64.tar.gz - cmake-3.10.2-Linux-x86_64/bin/cmake - https://cmake.org/files/v3.10/cmake-3.10.2-Linux-x86_64.tar.gz - cmake-3.10.2-Linux-x86_64.tar.gz + + + 3.10.2 + cmake-3.10.2-Darwin-x86_64/CMake.app/Contents/bin/cmake + https://cmake.org/files/v3.10/cmake-3.10.2-Darwin-x86_64.tar.gz + e748eb7698f8e2783c2eea9ab81eebf66da0238bbf8e8fa722a67a38f2110718 + cmake-3.10.2-Darwin-x86_64.tar.gz + + + 3.10.2 + cmake-3.10.2-Linux-x86_64/bin/cmake + https://cmake.org/files/v3.10/cmake-3.10.2-Linux-x86_64.tar.gz + 7a82b46c35f4e68a0807e8dc04e779dee3f36cd42c6387fd13b5c29fe62a69ea + cmake-3.10.2-Linux-x86_64.tar.gz 2.16.2 @@ -46,4 +54,18 @@ 2a3afe19c180f8373fa02ff00254d5394fec0349f5804e0ad2f6067854ff28ac 7za920.zip + + 1.8.2 + ninja + https://github.com/ninja-build/ninja/releases/download/v1.8.2/ninja-linux.zip + d2fea9ff33b3ef353161ed906f260d565ca55b8ca0568fa07b1d2cab90a84a07 + ninja-linux.zip + + + 1.8.2 + ninja + https://github.com/ninja-build/ninja/releases/download/v1.8.2/ninja-mac.zip + 0347d55c66061652b26f48769d566761630ffde3143793b29064a57f356542cc + ninja-mac.zip + diff --git a/toolsrc/CMakeLists.txt b/toolsrc/CMakeLists.txt index da0f41631..2a1304526 100644 --- a/toolsrc/CMakeLists.txt +++ b/toolsrc/CMakeLists.txt @@ -3,6 +3,12 @@ project(vcpkg C CXX) if(CMAKE_COMPILER_IS_GNUXX OR CMAKE_CXX_COMPILER_ID MATCHES "GNU") set(GCC 1) +elseif(CMAKE_CXX_COMPILER_ID MATCHES "AppleClang") + if(CMAKE_CXX_COMPILER_VERSION VERSION_LESS_EQUAL 9.0.0) + message(FATAL_ERROR "Apple clang versions 9 and below do not have support for the C++ Filesystem TS. Please install gcc6 or newer from homebrew (brew install gcc6).") + else() + set(CLANG 1) + endif() elseif(CMAKE_CXX_COMPILER_ID MATCHES "[Cc]lang") set(CLANG 1) elseif(MSVC) diff --git a/toolsrc/VERSION.txt b/toolsrc/VERSION.txt index 1305e8f43..daa1cd86e 100644 --- a/toolsrc/VERSION.txt +++ b/toolsrc/VERSION.txt @@ -1 +1 @@ -"0.0.106" \ No newline at end of file +"0.0.107" \ No newline at end of file diff --git a/toolsrc/include/vcpkg/base/util.h b/toolsrc/include/vcpkg/base/util.h index c73345719..7266fbbc6 100644 --- a/toolsrc/include/vcpkg/base/util.h +++ b/toolsrc/include/vcpkg/base/util.h @@ -3,6 +3,7 @@ #include #include #include +#include #include #include @@ -29,6 +30,17 @@ namespace vcpkg::Util } } + namespace Maps + { + template + void transform_values(const std::unordered_map& container, std::unordered_map& output, Func func) + { + std::for_each(container.cbegin(), container.cend(), [&](const std::pair& p) { + output[p.first] = func(p.second); + }); + } + } + template using FmapOut = decltype(std::declval()(*begin(std::declval()))); diff --git a/toolsrc/include/vcpkg/dependencies.h b/toolsrc/include/vcpkg/dependencies.h index 33af6c4f5..fea0d88a9 100644 --- a/toolsrc/include/vcpkg/dependencies.h +++ b/toolsrc/include/vcpkg/dependencies.h @@ -175,7 +175,7 @@ namespace vcpkg::Dependencies const std::vector& specs, const StatusParagraphs& status_db); - std::vector create_feature_install_plan(const PortFileProvider& port_file_provider, + std::vector create_feature_install_plan(const PortFileProvider& provider, const std::vector& specs, const StatusParagraphs& status_db); diff --git a/toolsrc/src/vcpkg/install.cpp b/toolsrc/src/vcpkg/install.cpp index e30a34c18..1fbf6d97e 100644 --- a/toolsrc/src/vcpkg/install.cpp +++ b/toolsrc/src/vcpkg/install.cpp @@ -70,8 +70,8 @@ namespace vcpkg::Install } const std::string filename = file.filename().u8string(); - if (fs::is_regular_file(status) && (Strings::case_insensitive_ascii_equals(filename.c_str(), "CONTROL") || - Strings::case_insensitive_ascii_equals(filename.c_str(), "BUILD_INFO"))) + if (fs::is_regular_file(status) && (Strings::case_insensitive_ascii_equals(filename, "CONTROL") || + Strings::case_insensitive_ascii_equals(filename, "BUILD_INFO"))) { // Do not copy the control file continue; @@ -558,16 +558,15 @@ namespace vcpkg::Install Build::CleanBuildtrees::NO, Build::CleanPackages::NO}; - // Note: action_plan will hold raw pointers to SourceControlFiles from this map - std::vector action_plan; - auto all_ports = Paragraphs::load_all_ports(paths.get_filesystem(), paths.ports); std::unordered_map scf_map; for (auto&& port : all_ports) scf_map[port->core_paragraph->name] = std::move(*port); MapPortFileProvider provider(scf_map); - action_plan = create_feature_install_plan(provider, FullPackageSpec::to_feature_specs(specs), status_db); + // Note: action_plan will hold raw pointers to SourceControlFiles from this map + std::vector action_plan = + create_feature_install_plan(provider, FullPackageSpec::to_feature_specs(specs), status_db); if (!GlobalState::feature_packages) { diff --git a/toolsrc/src/vcpkg/paragraphs.cpp b/toolsrc/src/vcpkg/paragraphs.cpp index d0b0c0abf..41ffceec7 100644 --- a/toolsrc/src/vcpkg/paragraphs.cpp +++ b/toolsrc/src/vcpkg/paragraphs.cpp @@ -251,7 +251,9 @@ namespace vcpkg::Paragraphs LoadResults try_load_all_ports(const Files::Filesystem& fs, const fs::path& ports_dir) { LoadResults ret; - for (auto&& path : fs.get_files_non_recursive(ports_dir)) + auto port_dirs = fs.get_files_non_recursive(ports_dir); + Util::sort(port_dirs); + for (auto&& path : port_dirs) { auto maybe_spgh = try_load_port(fs, path); if (const auto spgh = maybe_spgh.get()) diff --git a/toolsrc/src/vcpkg/vcpkglib.cpp b/toolsrc/src/vcpkg/vcpkglib.cpp index 220c29720..7979fd9a5 100644 --- a/toolsrc/src/vcpkg/vcpkglib.cpp +++ b/toolsrc/src/vcpkg/vcpkglib.cpp @@ -54,6 +54,7 @@ namespace vcpkg StatusParagraphs current_status_db = load_current_database(fs, status_file, status_file_old); auto update_files = fs.get_files_non_recursive(updates_dir); + Util::sort(update_files); if (update_files.empty()) { // updates directory is empty, control file is up-to-date. diff --git a/toolsrc/src/vcpkg/vcpkgpaths.cpp b/toolsrc/src/vcpkg/vcpkgpaths.cpp index c36def15d..a17ffeb05 100644 --- a/toolsrc/src/vcpkg/vcpkgpaths.cpp +++ b/toolsrc/src/vcpkg/vcpkgpaths.cpp @@ -46,9 +46,9 @@ namespace vcpkg #if defined(_WIN32) static constexpr StringLiteral OS_STRING = ""; #elif defined(__APPLE__) - static constexpr StringLiteral OS_STRING = " os=\"osx\""; + static constexpr StringLiteral OS_STRING = R"(os="osx")"; #else // assume linux - static constexpr StringLiteral OS_STRING = " os=\"linux\""; + static constexpr StringLiteral OS_STRING = R"(os="linux")"; #endif static const fs::path XML_PATH = paths.scripts / "vcpkgTools.xml"; @@ -72,15 +72,15 @@ namespace vcpkg }; static const std::string XML = paths.get_filesystem().read_contents(XML_PATH).value_or_exit(VCPKG_LINE_INFO); - static const std::regex VERSION_REGEX{ - Strings::format(R"###(([\s\S]*?))###", tool)}; + static const std::regex VERSION_REGEX{R"###(([\s\S]*?))###"}; static const std::regex EXE_RELATIVE_PATH_REGEX{ - Strings::format(R"###(([\s\S]*?))###", OS_STRING)}; + Strings::format(R"###(([\s\S]*?))###")}; static const std::regex ARCHIVE_RELATIVE_PATH_REGEX{ - Strings::format(R"###(([\s\S]*?))###", OS_STRING)}; - static const std::regex URL_REGEX{Strings::format(R"###(([\s\S]*?))###", OS_STRING)}; + Strings::format(R"###(([\s\S]*?))###")}; + static const std::regex URL_REGEX{Strings::format(R"###(([\s\S]*?))###")}; - const std::regex tool_regex{Strings::format(R"###(([\s\S]*?))###", tool)}; + const std::regex tool_regex{ + Strings::format(R"###(([\s\S]*?))###", tool, OS_STRING)}; std::smatch match_tool; const bool has_match_tool = std::regex_search(XML.cbegin(), XML.cend(), match_tool, tool_regex); @@ -405,6 +405,7 @@ namespace vcpkg { output.push_back(path.stem().filename().string()); } + Util::sort(output); return output; });