rgleason / watchdog_pi

watchdog plugin for opencpn
GNU General Public License v3.0
1 stars 10 forks source link

Use circleci to build msvc wx31 for Opencpn 5.6 (no Winxt) #66

Closed rgleason closed 1 year ago

rgleason commented 1 year ago

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

rgleason commented 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.

rgleason commented 1 year ago

Proposed change to config.yml

Now

## 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

Change to

## 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
bdbcat commented 1 year ago

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.

leamas commented 1 year ago

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?

leamas commented 1 year ago

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.

leamas commented 1 year ago

GA seems to not support VS2017: https://github.com/actions/runner-images/issues/5177.

rgleason commented 1 year ago

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

rgleason commented 1 year ago

See note left here https://github.com/jongough/testplugin_pi/issues/284