Closed rgleason closed 1 year ago
One alternative is to use Jon's ci setup using circleci to build both msvc-wx32 and msvc. If this version builds it will not support winxp.
Proposed change to config.yml
## Appveyor builds Windows including WinXT.
## If below is used, WinXT will not work.
build-msvc-2022:
executor: win/server-2022
environment:
- OCPN_TARGET: MSVC
- MSVC_VERSION: 2022
- WX_VER: 31
- DEPLOY_USE_ORB: true
steps:
- checkout
- run: ci/circleci-build-msvc
- deploy-code:
install-python: true
## Appveyor builds Windows including WinXT.
## If below is used, WinXT will not work.
build-msvc-2022:
executor: win/server-2022
environment:
- OCPN_TARGET: MSVC
- MSVC_VERSION: 2022
- WX_VER: 31 steps:
- checkout
- run:
privileged: False
shell: cmd.exe
command: ci\circleci-build-msvc.bat
- deploy-code:
DEPLOY-USE-ORB: false
After some experimentation, it seems clear the the SDK included in the Appveyor VS2017 preload (SDK v7.1) is deficient in several respects. There seems no way to upgrade the SDK from our end, and I can understand why Appveyor does not want to bother with VS2017. 6 years old, and all.... So I suggest that the "sublibs" project should abandon Appveyor completely, and move to CCI for all builds. I understand that this will be EOL of OCPN plugins for XP. Seems a reasonable thing to do, if the alternative is to revert to having developers manage their MSVC builds and publication locally Thoughts? Rick: I see your suggested code change, but not clear to me how this would work. Feel free to experiment with CCI builds using wx31 on, say, testplugin_pi. We will see how it goes.
So I suggest that the "sublibs" project should abandon Appveyor completely, and move to CCI for all builds.
Well, this is actually more about tp and shipdriver; opencpn-libs is basically agnostic for how plugins are built even if it provides some work arounds.
Looking at shipdriver, we have tried this. It works, but problem is (was?) that when we tested the microsoft builder was not included in the open-source license. It was included in the free license, but that has a pretty low level of available CPU cycles/month which soon made further builds impossible.
Another possibility is of course to use the Github Actions (GA) instead for MS builds. I haven't looked into this. How is the VS2017 support? What are the licensing terms?
Looking into CCI at https://circleci.com/pricing/ nothing seems to have changed:
CircleCI offers free access to compute time and resources for organizations on our Free plan. Open source projects can access up to 400,000 credits per month (equivalent to 80,000 build minutes) to use on Linux, Arm, and Docker.
Open source Windows and macOS builds or private repositories can use the 30,000 credits offered in our free plan.
GA seems to not support VS2017: https://github.com/actions/runner-images/issues/5177.
Thank you all. I had been hoping to get a final run for Opencpn 5.6 msvc plugins, but the gods do not wish it. Many thanks to Dave for valiant efforts to get it building. I think I will just drop OpenCPN 5.6 msvc wx312 from the build list, after trying a build for msvc wx312 without winxt support. I will include the other OpenCPN 5.6 plugins for at least one more run, then drop them.
Dave's tests on sept 15,2023 https://github.com/rgleason/testplugin_pi/tree/sublibs
See note left here https://github.com/jongough/testplugin_pi/issues/284
Not all builds fail, just the ones that use pidc.h in pluginDC lib For example weatherfax sublibs Appveyor msvc did not fail
I have reported this problem to Appveyor support and they aren't sure about what to do. I have made a number of suggestions. https://help.appveyor.com/discussions/problems/34676-vs2017-missing-header-files
https://stackoverflow.com/questions/9509166/what-is-winapifamily-h https://stackoverflow.com/questions/23043198/winapifamily-h-no-such-file-or-directory https://stackoverflow.com/questions/36912135/winapifamily-h-and-fatal-error-c1012-unmatched-parenthesis-missing
NOTE: Dave has already tried a number of things in Watchdog. https://github.com/rgleason/watchdog_pi/commits/sublibs
Two headers found, try the first one (winsdk 8.1) first