Skip to content

[osgearth] Fix osgearth vcpkg build failures and linking/compilation failures from installed bits#20449

Merged
BillyONeal merged 1 commit intomicrosoft:masterfrom
ankurvdev:ankurv/osgearth
Dec 3, 2021
Merged

[osgearth] Fix osgearth vcpkg build failures and linking/compilation failures from installed bits#20449
BillyONeal merged 1 commit intomicrosoft:masterfrom
ankurvdev:ankurv/osgearth

Conversation

@ankurvdev
Copy link
Copy Markdown
Contributor

Describe the pull request

No

  • Does your PR follow the maintainer guide?

    Your answer

  • If you have added/updated a port: Have you run ./vcpkg x-add-version --all and committed the result?

    <Yes / I am still working on this PR>

If you are still working on the PR, open it as a Draft: https://github.blog/2019-02-14-introducing-draft-pull-requests/

Copy link
Copy Markdown

@github-actions github-actions bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This is a new experimental fast check for PR issues. Please let us know if this bot is helpful!

PRs must add only one version and must not modify any published versions

When making any changes to a library, the version or port-version in vcpkg.json or CONTROL must be modified.

Error: Local changes detected for osgearth but no changes to version or port version.
-- Version: 3.2
-- Old SHA: a77075c3ff1a0372588cb78af6f4f08352b82896
-- New SHA: aaefd0bbf40f5733536e78da4398f51963c81271
-- Did you remember to update the version or port version?
-- Pass `--overwrite-version` to bypass this check.
***No files were updated.***
You have modified or added at least one portfile where deprecated functions are used.
Details

If you feel able to do so, please consider migrating them to the new functions:
vcpkg_install_cmake -> vcpkg_cmake_install (from port vcpkg-cmake)
vcpkg_build_cmake -> vcpkg_cmake_build (from port vcpkg-cmake)
vcpkg_configure_cmake -> vcpkg_cmake_configure (Please remove the option PREFER_NINJA) (from port vcpkg-cmake)
vcpkg_fixup_cmake_targets -> vcpkg_cmake_config_fixup (from port vcpkg-cmake-config)

In the ports that use the new function, you have to add the corresponding dependencies:

{
  "name": "vcpkg-cmake",
  "host": true
},
{
  "name": "vcpkg-cmake-config",
  "host": true
}

The following files are affected:

  • ports/osgearth/portfile.cmake

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Oh. Encoding particular dependencies (e.g. of gdal) in all depending ports (e.g. osgearth) is hard to maintain, even more with "features".
Instead of extending the list of transitive dependencies, please use targets and <pkg>_LIBRARIES from CMake's find modules and from exported config.

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I tried replacing all this with find_library(GDAL) and then adding GDAL::GDAL target but unfortunately osgearth CMakeList is a stone-age cmake script that didnt quite work with it

Got the following error

ninja: error: 'optimized;/home/ankurv/vcpkg/installed/x64-linux/lib/libgdal.a;debug;/home/ankurv/vcpkg/installed/x64-linux/debug/lib/libgdal.a', needed by 'bin/osgearth_viewer', missing and no known rule to make it

Seems like an issue somehow related to variable indirection that osgearth cmakelists love doing.
I did not look into this further since reverting this blob of change seems to work on my box for now.

I'm reverting the changes here

@JonLiu1993 JonLiu1993 added category:port-bug The issue is with a library, which is something the port should already support requires:author-response and removed requires:author-response labels Oct 8, 2021
@JonLiu1993
Copy link
Copy Markdown
Contributor

@ankurverma85, have you considered @dg0yt's comments and suggestions?

@ankurvdev
Copy link
Copy Markdown
Contributor Author

Don't think I fully understand the suggestion but it seems it'll require a major refactoring of the osgearth cmake (and maybe even gdal's)

I'm simply following an established pattern.

The list I'm extending already contains the a lot of gdal dependencies. I'm extending that list to include a few more to resolve linker errors

@dg0yt
Copy link
Copy Markdown
Contributor

dg0yt commented Oct 14, 2021

Don't think I fully understand the suggestion but it seems it'll require a major refactoring of the osgearth cmake (and maybe even gdal's)

Port gdal in vcpkg already already does take care of finding gdal's dependencies (hdf5 szip and more) when a consuming project uses find_package(GDAL) and target GDAL::GDAL. I assume this pattern is missing in this consuming port, so I kindly ask to verify this assumption and try this approach first. I think the gdal stuff should be done after the foreach loop which handles explicit stuff, for static linkage order.

I'm simply following an established pattern.
The list I'm extending already contains the a lot of gdal dependencies. I'm extending that list to include a few more to resolve linker errors

The point is that port gdal becomes unmaintainable by the "established pattern" of consuming ports listing explicitly what they believe to be the dependencies of gdal. The poor maintainer of gdal will have to update all those ports for any improvement of gdal. She/he should focus on the export wrapper, config or pc file instead. With regard to improving gdal, there is a demand for

  • control over gdal features,
  • fix feature parity between dynamic and static linkage,
  • get rid of unusal debug postfixes.

And of course gdal depends on a huge set of incoming dependencies, equally affected by the "established pattern".

@JonLiu1993
Copy link
Copy Markdown
Contributor

@ankurverma85 ,Is there any progress on this pr?

@ankurvdev
Copy link
Copy Markdown
Contributor Author

Sorry I haven't had any cycles to try out the changes yet.
It'll likely have to wait a few weeks more before I can make progress on this

Copy link
Copy Markdown

@github-actions github-actions bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This is a new experimental fast check for PR issues. Please let us know if this bot is helpful!

PRs must add only one version and must not modify any published versions

When making any changes to a library, the version or port-version in vcpkg.json or CONTROL must be modified.

Error: Local changes detected for osgearth but no changes to version or port version.
-- Version: 3.2#1
-- Old SHA: f3ac1cffb36f0b0b2b531af29145de695cee2291
-- New SHA: ca020ccf653426842774744bef6ba93035ace4db
-- Did you remember to update the version or port version?
-- Pass `--overwrite-version` to bypass this check.
***No files were updated.***
You have modified or added at least one portfile where deprecated functions are used.
Details

If you feel able to do so, please consider migrating them to the new functions:
vcpkg_install_cmake -> vcpkg_cmake_install (from port vcpkg-cmake)
vcpkg_build_cmake -> vcpkg_cmake_build (from port vcpkg-cmake)
vcpkg_configure_cmake -> vcpkg_cmake_configure (Please remove the option PREFER_NINJA) (from port vcpkg-cmake)
vcpkg_fixup_cmake_targets -> vcpkg_cmake_config_fixup (from port vcpkg-cmake-config)

In the ports that use the new function, you have to add the corresponding dependencies:

{
  "name": "vcpkg-cmake",
  "host": true
},
{
  "name": "vcpkg-cmake-config",
  "host": true
}

The following files are affected:

  • ports/osgearth/portfile.cmake

@JonLiu1993
Copy link
Copy Markdown
Contributor

Please run the command "./vcpkg x-add-version osgearth --overwrite-version" then commit again

Copy link
Copy Markdown

@github-actions github-actions bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This is a new experimental fast check for PR issues. Please let us know if this bot is helpful!

PRs must add only one version and must not modify any published versions

When making any changes to a library, the version or port-version in vcpkg.json or CONTROL must be modified.

Error: Local changes detected for osgearth but no changes to version or port version.
-- Version: 3.2#1
-- Old SHA: f3ac1cffb36f0b0b2b531af29145de695cee2291
-- New SHA: ca020ccf653426842774744bef6ba93035ace4db
-- Did you remember to update the version or port version?
-- Pass `--overwrite-version` to bypass this check.
***No files were updated.***
After committing all other changes, the version database must be updated
git add -u && git commit
git checkout 66c39e113a348a6ae80419fae5a629b951b00f1a -- versions
./vcpkg x-add-version --all
Diff
diff --git a/versions/o-/osgearth.json b/versions/o-/osgearth.json
index ab746ee..60da91a 100644
--- a/versions/o-/osgearth.json
+++ b/versions/o-/osgearth.json
@@ -1,7 +1,7 @@
 {
   "versions": [
     {
-      "git-tree": "ca020ccf653426842774744bef6ba93035ace4db",
+      "git-tree": "f3ac1cffb36f0b0b2b531af29145de695cee2291",
       "version": "3.2",
       "port-version": 1
     },

You have modified or added at least one portfile where deprecated functions are used.

Details

If you feel able to do so, please consider migrating them to the new functions:
vcpkg_install_cmake -> vcpkg_cmake_install (from port vcpkg-cmake)
vcpkg_build_cmake -> vcpkg_cmake_build (from port vcpkg-cmake)
vcpkg_configure_cmake -> vcpkg_cmake_configure (Please remove the option PREFER_NINJA) (from port vcpkg-cmake)
vcpkg_fixup_cmake_targets -> vcpkg_cmake_config_fixup (from port vcpkg-cmake-config)

In the ports that use the new function, you have to add the corresponding dependencies:

{
  "name": "vcpkg-cmake",
  "host": true
},
{
  "name": "vcpkg-cmake-config",
  "host": true
}

The following files are affected:

  • ports/osgearth/portfile.cmake

Copy link
Copy Markdown

@github-actions github-actions bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This is a new experimental fast check for PR issues. Please let us know if this bot is helpful!

PRs must add only one version and must not modify any published versions

When making any changes to a library, the version or port-version in vcpkg.json or CONTROL must be modified.

Error: Local changes detected for osgearth but no changes to version or port version.
-- Version: 3.2#1
-- Old SHA: f3ac1cffb36f0b0b2b531af29145de695cee2291
-- New SHA: f61181e88002ae8b121241af327e1eac9cf9fa92
-- Did you remember to update the version or port version?
-- Pass `--overwrite-version` to bypass this check.
***No files were updated.***
After committing all other changes, the version database must be updated
git add -u && git commit
git checkout 1b664707c109f5d48b0b142e96117a53deb653be -- versions
./vcpkg x-add-version --all
Diff
diff --git a/versions/o-/osgearth.json b/versions/o-/osgearth.json
index ab746ee..60da91a 100644
--- a/versions/o-/osgearth.json
+++ b/versions/o-/osgearth.json
@@ -1,7 +1,7 @@
 {
   "versions": [
     {
-      "git-tree": "ca020ccf653426842774744bef6ba93035ace4db",
+      "git-tree": "f3ac1cffb36f0b0b2b531af29145de695cee2291",
       "version": "3.2",
       "port-version": 1
     },

You have modified or added at least one portfile where deprecated functions are used.

Details

If you feel able to do so, please consider migrating them to the new functions:
vcpkg_install_cmake -> vcpkg_cmake_install (from port vcpkg-cmake)
vcpkg_build_cmake -> vcpkg_cmake_build (from port vcpkg-cmake)
vcpkg_configure_cmake -> vcpkg_cmake_configure (Please remove the option PREFER_NINJA) (from port vcpkg-cmake)
vcpkg_fixup_cmake_targets -> vcpkg_cmake_config_fixup (from port vcpkg-cmake-config)

In the ports that use the new function, you have to add the corresponding dependencies:

{
  "name": "vcpkg-cmake",
  "host": true
},
{
  "name": "vcpkg-cmake-config",
  "host": true
}

The following files are affected:

  • ports/osgearth/portfile.cmake

@ankurvdev ankurvdev marked this pull request as ready for review December 1, 2021 05:59
Copy link
Copy Markdown

@github-actions github-actions bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This is a new experimental fast check for PR issues. Please let us know if this bot is helpful!

PRs must add only one version and must not modify any published versions

When making any changes to a library, the version or port-version in vcpkg.json or CONTROL must be modified.

Error: Local changes detected for osgearth but no changes to version or port version.
-- Version: 3.2#1
-- Old SHA: f3ac1cffb36f0b0b2b531af29145de695cee2291
-- New SHA: f61181e88002ae8b121241af327e1eac9cf9fa92
-- Did you remember to update the version or port version?
-- Pass `--overwrite-version` to bypass this check.
***No files were updated.***
After committing all other changes, the version database must be updated
git add -u && git commit
git checkout 1b664707c109f5d48b0b142e96117a53deb653be -- versions
./vcpkg x-add-version --all
Diff
diff --git a/versions/o-/osgearth.json b/versions/o-/osgearth.json
index e319f77..60da91a 100644
--- a/versions/o-/osgearth.json
+++ b/versions/o-/osgearth.json
@@ -1,7 +1,7 @@
 {
   "versions": [
     {
-      "git-tree": "f61181e88002ae8b121241af327e1eac9cf9fa92",
+      "git-tree": "f3ac1cffb36f0b0b2b531af29145de695cee2291",
       "version": "3.2",
       "port-version": 1
     },

You have modified or added at least one portfile where deprecated functions are used.

Details

If you feel able to do so, please consider migrating them to the new functions:
vcpkg_install_cmake -> vcpkg_cmake_install (from port vcpkg-cmake)
vcpkg_build_cmake -> vcpkg_cmake_build (from port vcpkg-cmake)
vcpkg_configure_cmake -> vcpkg_cmake_configure (Please remove the option PREFER_NINJA) (from port vcpkg-cmake)
vcpkg_fixup_cmake_targets -> vcpkg_cmake_config_fixup (from port vcpkg-cmake-config)

In the ports that use the new function, you have to add the corresponding dependencies:

{
  "name": "vcpkg-cmake",
  "host": true
},
{
  "name": "vcpkg-cmake-config",
  "host": true
}

The following files are affected:

  • ports/osgearth/portfile.cmake

Copy link
Copy Markdown

@github-actions github-actions bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This is a new experimental fast check for PR issues. Please let us know if this bot is helpful!

PRs must add only one version and must not modify any published versions

When making any changes to a library, the version or port-version in vcpkg.json or CONTROL must be modified.

Error: Local changes detected for osgearth but no changes to version or port version.
-- Version: 3.2#1
-- Old SHA: f3ac1cffb36f0b0b2b531af29145de695cee2291
-- New SHA: f61181e88002ae8b121241af327e1eac9cf9fa92
-- Did you remember to update the version or port version?
-- Pass `--overwrite-version` to bypass this check.
***No files were updated.***
After committing all other changes, the version database must be updated
git add -u && git commit
git checkout 1b664707c109f5d48b0b142e96117a53deb653be -- versions
./vcpkg x-add-version --all
Diff
diff --git a/versions/o-/osgearth.json b/versions/o-/osgearth.json
index e319f77..60da91a 100644
--- a/versions/o-/osgearth.json
+++ b/versions/o-/osgearth.json
@@ -1,7 +1,7 @@
 {
   "versions": [
     {
-      "git-tree": "f61181e88002ae8b121241af327e1eac9cf9fa92",
+      "git-tree": "f3ac1cffb36f0b0b2b531af29145de695cee2291",
       "version": "3.2",
       "port-version": 1
     },

You have modified or added at least one portfile where deprecated functions are used.

Details

If you feel able to do so, please consider migrating them to the new functions:
vcpkg_install_cmake -> vcpkg_cmake_install (from port vcpkg-cmake)
vcpkg_build_cmake -> vcpkg_cmake_build (from port vcpkg-cmake)
vcpkg_configure_cmake -> vcpkg_cmake_configure (Please remove the option PREFER_NINJA) (from port vcpkg-cmake)
vcpkg_fixup_cmake_targets -> vcpkg_cmake_config_fixup (from port vcpkg-cmake-config)

In the ports that use the new function, you have to add the corresponding dependencies:

{
  "name": "vcpkg-cmake",
  "host": true
},
{
  "name": "vcpkg-cmake-config",
  "host": true
}

The following files are affected:

  • ports/osgearth/portfile.cmake

Copy link
Copy Markdown
Contributor

@JonLiu1993 JonLiu1993 left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@ankurverma85 ,Thanks for your pr, we should add "port-version" to 2 when we fix this bug

Copy link
Copy Markdown

@github-actions github-actions bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This is a new experimental fast check for PR issues. Please let us know if this bot is helpful!

After committing all other changes, the version database must be updated
git add -u && git commit
git checkout 1b664707c109f5d48b0b142e96117a53deb653be -- versions
./vcpkg x-add-version --all
Diff
diff --git a/versions/baseline.json b/versions/baseline.json
index eff7361..c1978ab 100644
--- a/versions/baseline.json
+++ b/versions/baseline.json
@@ -5082,7 +5082,7 @@
     },
     "osgearth": {
       "baseline": "3.2",
-      "port-version": 1
+      "port-version": 2
     },
     "osi": {
       "baseline": "0.108.6",
diff --git a/versions/o-/osgearth.json b/versions/o-/osgearth.json
index e319f77..0945a3a 100644
--- a/versions/o-/osgearth.json
+++ b/versions/o-/osgearth.json
@@ -1,7 +1,12 @@
 {
   "versions": [
     {
-      "git-tree": "f61181e88002ae8b121241af327e1eac9cf9fa92",
+      "git-tree": "ae76d1586f76b2bd9834af964908977008ca5e6b",
+      "version": "3.2",
+      "port-version": 2
+    },
+    {
+      "git-tree": "f3ac1cffb36f0b0b2b531af29145de695cee2291",
       "version": "3.2",
       "port-version": 1
     },

You have modified or added at least one portfile where deprecated functions are used.

Details

If you feel able to do so, please consider migrating them to the new functions:
vcpkg_install_cmake -> vcpkg_cmake_install (from port vcpkg-cmake)
vcpkg_build_cmake -> vcpkg_cmake_build (from port vcpkg-cmake)
vcpkg_configure_cmake -> vcpkg_cmake_configure (Please remove the option PREFER_NINJA) (from port vcpkg-cmake)
vcpkg_fixup_cmake_targets -> vcpkg_cmake_config_fixup (from port vcpkg-cmake-config)

In the ports that use the new function, you have to add the corresponding dependencies:

{
  "name": "vcpkg-cmake",
  "host": true
},
{
  "name": "vcpkg-cmake-config",
  "host": true
}

The following files are affected:

  • ports/osgearth/portfile.cmake

Copy link
Copy Markdown

@github-actions github-actions bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This is a new experimental fast check for PR issues. Please let us know if this bot is helpful!

After committing all other changes, the version database must be updated
git add -u && git commit
git checkout 1b664707c109f5d48b0b142e96117a53deb653be -- versions
./vcpkg x-add-version --all
Diff
diff --git a/versions/baseline.json b/versions/baseline.json
index eff7361..c1978ab 100644
--- a/versions/baseline.json
+++ b/versions/baseline.json
@@ -5082,7 +5082,7 @@
     },
     "osgearth": {
       "baseline": "3.2",
-      "port-version": 1
+      "port-version": 2
     },
     "osi": {
       "baseline": "0.108.6",
diff --git a/versions/o-/osgearth.json b/versions/o-/osgearth.json
index e319f77..e8eb1af 100644
--- a/versions/o-/osgearth.json
+++ b/versions/o-/osgearth.json
@@ -1,7 +1,12 @@
 {
   "versions": [
     {
-      "git-tree": "f61181e88002ae8b121241af327e1eac9cf9fa92",
+      "git-tree": "5579cf3fbd8b4db5df61df261d3d2650082ae0af",
+      "version": "3.2",
+      "port-version": 2
+    },
+    {
+      "git-tree": "f3ac1cffb36f0b0b2b531af29145de695cee2291",
       "version": "3.2",
       "port-version": 1
     },

You have modified or added at least one portfile where deprecated functions are used.

Details

If you feel able to do so, please consider migrating them to the new functions:
vcpkg_install_cmake -> vcpkg_cmake_install (from port vcpkg-cmake)
vcpkg_build_cmake -> vcpkg_cmake_build (from port vcpkg-cmake)
vcpkg_configure_cmake -> vcpkg_cmake_configure (Please remove the option PREFER_NINJA) (from port vcpkg-cmake)
vcpkg_fixup_cmake_targets -> vcpkg_cmake_config_fixup (from port vcpkg-cmake-config)

In the ports that use the new function, you have to add the corresponding dependencies:

{
  "name": "vcpkg-cmake",
  "host": true
},
{
  "name": "vcpkg-cmake-config",
  "host": true
}

The following files are affected:

  • ports/osgearth/portfile.cmake

Copy link
Copy Markdown

@github-actions github-actions bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This is a new experimental fast check for PR issues. Please let us know if this bot is helpful!

After committing all other changes, the version database must be updated
git add -u && git commit
git checkout 1b664707c109f5d48b0b142e96117a53deb653be -- versions
./vcpkg x-add-version --all
Diff
diff --git a/versions/o-/osgearth.json b/versions/o-/osgearth.json
index e94f7c0..e8eb1af 100644
--- a/versions/o-/osgearth.json
+++ b/versions/o-/osgearth.json
@@ -6,7 +6,7 @@
       "port-version": 2
     },
     {
-      "git-tree": "f61181e88002ae8b121241af327e1eac9cf9fa92",
+      "git-tree": "f3ac1cffb36f0b0b2b531af29145de695cee2291",
       "version": "3.2",
       "port-version": 1
     },

You have modified or added at least one portfile where deprecated functions are used.

Details

If you feel able to do so, please consider migrating them to the new functions:
vcpkg_install_cmake -> vcpkg_cmake_install (from port vcpkg-cmake)
vcpkg_build_cmake -> vcpkg_cmake_build (from port vcpkg-cmake)
vcpkg_configure_cmake -> vcpkg_cmake_configure (Please remove the option PREFER_NINJA) (from port vcpkg-cmake)
vcpkg_fixup_cmake_targets -> vcpkg_cmake_config_fixup (from port vcpkg-cmake-config)

In the ports that use the new function, you have to add the corresponding dependencies:

{
  "name": "vcpkg-cmake",
  "host": true
},
{
  "name": "vcpkg-cmake-config",
  "host": true
}

The following files are affected:

  • ports/osgearth/portfile.cmake

Copy link
Copy Markdown

@github-actions github-actions bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

You have modified or added at least one portfile where deprecated functions are used.

Details

If you feel able to do so, please consider migrating them to the new functions:
vcpkg_install_cmake -> vcpkg_cmake_install (from port vcpkg-cmake)
vcpkg_build_cmake -> vcpkg_cmake_build (from port vcpkg-cmake)
vcpkg_configure_cmake -> vcpkg_cmake_configure (Please remove the option PREFER_NINJA) (from port vcpkg-cmake)
vcpkg_fixup_cmake_targets -> vcpkg_cmake_config_fixup (from port vcpkg-cmake-config)

In the ports that use the new function, you have to add the corresponding dependencies:

{
  "name": "vcpkg-cmake",
  "host": true
},
{
  "name": "vcpkg-cmake-config",
  "host": true
}

The following files are affected:

  • ports/osgearth/portfile.cmake

@ankurvdev
Copy link
Copy Markdown
Contributor Author

@JonLiu1993 , Can you help me figure out why osgearth:x64-windows-static-md is getting skipped in the pipeline test runs

It says "cascade" but not quite sure it cascades

The port compiles successfully on my box and i would like to add it as a baseline

Copy link
Copy Markdown

@github-actions github-actions bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

You have modified or added at least one portfile where deprecated functions are used.

Details

If you feel able to do so, please consider migrating them to the new functions:
vcpkg_install_cmake -> vcpkg_cmake_install (from port vcpkg-cmake)
vcpkg_build_cmake -> vcpkg_cmake_build (from port vcpkg-cmake)
vcpkg_configure_cmake -> vcpkg_cmake_configure (Please remove the option PREFER_NINJA) (from port vcpkg-cmake)
vcpkg_fixup_cmake_targets -> vcpkg_cmake_config_fixup (from port vcpkg-cmake-config)

In the ports that use the new function, you have to add the corresponding dependencies:

{
  "name": "vcpkg-cmake",
  "host": true
},
{
  "name": "vcpkg-cmake-config",
  "host": true
}

The following files are affected:

  • ports/osgearth/portfile.cmake

Copy link
Copy Markdown

@github-actions github-actions bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This is a new experimental fast check for PR issues. Please let us know if this bot is helpful!

After committing all other changes, the version database must be updated
git add -u && git commit
git checkout 1b664707c109f5d48b0b142e96117a53deb653be -- versions
./vcpkg x-add-version --all
Diff
diff --git a/versions/o-/osgearth.json b/versions/o-/osgearth.json
index e8eb1af..5f39ae9 100644
--- a/versions/o-/osgearth.json
+++ b/versions/o-/osgearth.json
@@ -1,7 +1,7 @@
 {
   "versions": [
     {
-      "git-tree": "5579cf3fbd8b4db5df61df261d3d2650082ae0af",
+      "git-tree": "106a6da206a787832252687e41ad5ba3b102d062",
       "version": "3.2",
       "port-version": 2
     },

You have modified or added at least one portfile where deprecated functions are used.

Details

If you feel able to do so, please consider migrating them to the new functions:
vcpkg_install_cmake -> vcpkg_cmake_install (from port vcpkg-cmake)
vcpkg_build_cmake -> vcpkg_cmake_build (from port vcpkg-cmake)
vcpkg_configure_cmake -> vcpkg_cmake_configure (Please remove the option PREFER_NINJA) (from port vcpkg-cmake)
vcpkg_fixup_cmake_targets -> vcpkg_cmake_config_fixup (from port vcpkg-cmake-config)

In the ports that use the new function, you have to add the corresponding dependencies:

{
  "name": "vcpkg-cmake",
  "host": true
},
{
  "name": "vcpkg-cmake-config",
  "host": true
}

The following files are affected:

  • ports/osgearth/portfile.cmake

Copy link
Copy Markdown

@github-actions github-actions bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

You have modified or added at least one portfile where deprecated functions are used.

Details

If you feel able to do so, please consider migrating them to the new functions:
vcpkg_install_cmake -> vcpkg_cmake_install (from port vcpkg-cmake)
vcpkg_build_cmake -> vcpkg_cmake_build (from port vcpkg-cmake)
vcpkg_configure_cmake -> vcpkg_cmake_configure (Please remove the option PREFER_NINJA) (from port vcpkg-cmake)
vcpkg_fixup_cmake_targets -> vcpkg_cmake_config_fixup (from port vcpkg-cmake-config)

In the ports that use the new function, you have to add the corresponding dependencies:

{
  "name": "vcpkg-cmake",
  "host": true
},
{
  "name": "vcpkg-cmake-config",
  "host": true
}

The following files are affected:

  • ports/osgearth/portfile.cmake

Copy link
Copy Markdown

@github-actions github-actions bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

You have modified or added at least one portfile where deprecated functions are used.

Details

If you feel able to do so, please consider migrating them to the new functions:
vcpkg_install_cmake -> vcpkg_cmake_install (from port vcpkg-cmake)
vcpkg_build_cmake -> vcpkg_cmake_build (from port vcpkg-cmake)
vcpkg_configure_cmake -> vcpkg_cmake_configure (Please remove the option PREFER_NINJA) (from port vcpkg-cmake)
vcpkg_fixup_cmake_targets -> vcpkg_cmake_config_fixup (from port vcpkg-cmake-config)

In the ports that use the new function, you have to add the corresponding dependencies:

{
  "name": "vcpkg-cmake",
  "host": true
},
{
  "name": "vcpkg-cmake-config",
  "host": true
}

The following files are affected:

  • ports/osgearth/portfile.cmake

@JonLiu1993 JonLiu1993 added the info:needs-maintainer-attention Lets the current 'on rotation' vcpkg maintainer know they need to look at this. label Dec 2, 2021
@BillyONeal BillyONeal merged commit a5b6591 into microsoft:master Dec 3, 2021
@BillyONeal
Copy link
Copy Markdown
Member

Thanks for the fix :)

dg0yt added a commit to dg0yt/vcpkg that referenced this pull request Dec 3, 2021
BillyONeal pushed a commit that referenced this pull request Dec 7, 2021
@BillyONeal
Copy link
Copy Markdown
Member

In CI we are seeing:

osgEarthd.lib(FeatureRasterizer.cpp.obj) : error LNK2019: unresolved external symbol __imp_blContextInitAs referenced in function "public: __cdecl BLContext::BLContext(struct BLImageCore &)" (??0BLContext@@QEAA@AEAUBLImageCore@@@Z)
osgEarthd.lib(FeatureRasterizer.cpp.obj) : error LNK2019: unresolved external symbol __imp_blContextDestroy referenced in function "public: __cdecl BLContext::~BLContext(void)" (??1BLContext@@QEAA@XZ)
osgEarthd.lib(FeatureRasterizer.cpp.obj) : error LNK2019: unresolved external symbol __imp_blContextEnd referenced in function "public: unsigned int __cdecl BLContext::end(void)" (?end@BLContext@@QEAAIXZ)
osgEarthd.lib(FeatureRasterizer.cpp.obj) : error LNK2019: unresolved external symbol __imp_blFontDestroy referenced in function "public: __cdecl BLFont::~BLFont(void)" (??1BLFont@@QEAA@XZ)
osgEarthd.lib(FeatureRasterizer.cpp.obj) : error LNK2019: unresolved external symbol __imp_blFontCreateFromFace referenced in function "public: unsigned int __cdecl BLFont::createFromFace(struct BLFontFaceCore const &,float)" (?createFromFace@BLFont@@QEAAIAEBUBLFontFaceCore@@M@Z)
osgEarthd.lib(FeatureRasterizer.cpp.obj) : error LNK2019: unresolved external symbol __imp_blFontFaceDestroy referenced in function "public: __cdecl BLFontFace::~BLFontFace(void)" (??1BLFontFace@@QEAA@XZ)
osgEarthd.lib(FeatureRasterizer.cpp.obj) : error LNK2019: unresolved external symbol __imp_blFontFaceCreateFromFile referenced in function "public: unsigned int __cdecl BLFontFace::createFromFile(char const *,unsigned int)" (?createFromFile@BLFontFace@@QEAAIPEBDI@Z)
osgEarthd.lib(FeatureRasterizer.cpp.obj) : error LNK2019: unresolved external symbol __imp_blImageDestroy referenced in function "public: __cdecl BLImage::~BLImage(void)" (??1BLImage@@QEAA@XZ)
osgEarthd.lib(FeatureRasterizer.cpp.obj) : error LNK2019: unresolved external symbol __imp_blImageCreateFromData referenced in function "public: unsigned int __cdecl BLImage::createFromData(int,int,unsigned int,void *,__int64,void (__cdecl*)(void *,void *),void *)" (?createFromData@BLImage@@QEAAIHHIPEAX_JP6AX00@Z0@Z)
osgEarthd.lib(FeatureRasterizer.cpp.obj) : error LNK2019: unresolved external symbol __imp_blPathDestroy referenced in function "public: __cdecl BLPath::~BLPath(void)" (??1BLPath@@QEAA@XZ)
osgEarthd.lib(FeatureRasterizer.cpp.obj) : error LNK2019: unresolved external symbol __imp_blPathMoveTo referenced in function "public: unsigned int __cdecl BLPath::moveTo(double,double)" (?moveTo@BLPath@@QEAAINN@Z)
osgEarthd.lib(FeatureRasterizer.cpp.obj) : error LNK2019: unresolved external symbol __imp_blPathLineTo referenced in function "public: unsigned int __cdecl BLPath::lineTo(double,double)" (?lineTo@BLPath@@QEAAINN@Z)
osgEarthd.lib(FeatureRasterizer.cpp.obj) : error LNK2019: unresolved external symbol __imp_blNone referenced in function "public: static class BLFont const & __cdecl BLFont::none(void)" (?none@BLFont@@SAAEBV1@XZ)

which seems likely to be caused by this change. Do you have any ideas @ankurverma85 ?

@ankurvdev
Copy link
Copy Markdown
Contributor Author

Seems due to this.

https://github.com/gwaldron/osgearth/blob/master/src/osgEarth/FeatureRasterizer.cpp#L30-L34

I'm not seeing this locally, probab because cmake auto turns it off for me if I don't have blend2d in my vcpkg installed libs

Perhaps a good fix is to turn off the BLEND2D support by explicitly passing it off to cmake during configure

@BillyONeal
Copy link
Copy Markdown
Member

Perhaps a good fix is to turn off the BLEND2D support by explicitly passing it off to cmake during configure

Would you be willing to prepare a PR that does that? This project's optional dependencies are the source of so much pain :(

@BillyONeal
Copy link
Copy Markdown
Member

Perhaps a good fix is to turn off the BLEND2D support by explicitly passing it off to cmake during configure

Would you be willing to prepare a PR that does that? This project's optional dependencies are the source of so much pain :(

I took care of it, except I made the blend2d dependency actually work. Knowing that blXxx was supposed to be blend2d was the hint I needed: #21977

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

category:port-bug The issue is with a library, which is something the port should already support info:needs-maintainer-attention Lets the current 'on rotation' vcpkg maintainer know they need to look at this.

Projects

None yet

Development

Successfully merging this pull request may close these issues.

[osgearth] build failure x64-linux

4 participants