Skip to content

Fix windows build and add basic actions - #9

Merged
boutinb merged 10 commits into
masterfrom
fix_build_and_add_actions
Oct 1, 2026
Merged

boutinb merged 10 commits into
masterfrom
fix_build_and_add_actions

Conversation

@vandenman

Copy link
Copy Markdown
Contributor

The action will install the package with the latest static build, which help identify situations when only some OSes fail to build.

Comment thread .github/workflows/rcmdcheck.yml Fixed
vandenman and others added 6 commits June 23, 2026 13:35
…ntain permissions'

Co-authored-by: Copilot Autofix powered by AI <62310815+github-advanced-security[bot]@users.noreply.github.com>
On the windows-latest VS 2026 image the hard-coded vcvarsall.bat does not
exist; cmd printed "The system cannot find the path specified." and carried
on, so CMake fell back to the Rtools GCC on PATH and the build only failed
much later, inside Conan's MSVC build of bzip2.

Keep the vcvarsall path in one place, stop the job when it is missing or
fails, and configure jasp-desktop with cl explicitly: Rtools' ucrt64/bin is
now on GITHUB_PATH, so GCC sits right next to MSVC for every later step.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>

@boutinb boutinb left a comment

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.

This fixes the failing Build SyntaxInterface Libraries run on master (run 36749182024), so I think it should go in.

Why master fails: windows-latest is now the windows-2025-vs2026 image, where the hard-coded VS 2022 vcvarsall.bat doesn't exist. Each cmd step printed "The system cannot find the path specified." and carried on without an MSVC environment. CMake then quietly took GCC from PATH: static Qt was built with MinGW GCC 15.2, and jasp-desktop was configured with the Rtools static toolchain's gcc and cmake.exe. It finally broke in Conan's MSVC build of bzip2, because that cmake handed the link step's manifest to windres. Pinning windows-2022 fixes it, and it also changes the Qt cache key, so the MinGW-built Qt that run saved isn't reused.

What I pushed (e55171c):

  • The vcvarsall.bat path is now defined once (VCVARSALL), and every Windows step stops with a clear error if it's missing or fails, instead of producing a misleading failure much later.
  • jasp-desktop is configured with -DCMAKE_C_COMPILER=cl -DCMAKE_CXX_COMPILER=cl. This PR puts C:\rtools45\ucrt64\bin on GITHUB_PATH, so GCC sits right next to MSVC in every later step; naming the compiler means it can't silently fall back to GCC again.

What this doesn't fix yet: the published v0.97.1 libR-InterfaceNoRInside-windows-x86_64.dll still imports libgcc_s_seh-1.dll and libstdc++-6.dll. That goes away with jasp-stats/jasp-desktop#6269 (R-Interface built with the Rtools static toolchain). Once that's merged and a release is built from it, the "Install Rtools45 ucrt64 compiler" step and the GITHUB_PATH line here can go, and the DLL import check from #6269 could be added to this workflow.

Other remarks:

  1. The license change from GPL (>= 2) to GPL-3 + file LICENSE matches the GPL-3 LICENSE that's been there since the first commit, but it's a license change, so worth an explicit OK. Also, + file LICENSE is meant for additional terms; with the full GPL text in that file, CRAN's checks complain. Plain License: GPL-3 is the usual form.
  2. configure.win writes temp files to /tmp/jaspsyntax-*.$$. RUNTIME_DIRS_FILE, PROCESSED_FILE and MISSING_DLLS_FILE are never removed, including on the error exits. mktemp -d plus a trap that cleans up on exit would fix that.
  3. install.libs.R now globs symbols.rds, but nothing produces that file.
  4. rcmdcheck.yml uses actions/checkout@v2 (the other workflow uses @v6) and has no newline at the end of the file.

Checked and fine: the bash → POSIX sh conversion of configure, configure.win and tools/check-syntaxinterface-symbols.sh passes sh -n and dash -n with no bashisms left. Every native symbol src/syntaxfunctions.cpp uses is declared in the v0.97.1 source bundle's header, so the default tag bump is consistent. The R CMD check workflow against the published binaries is a nice addition.

@boutinb
boutinb merged commit 98f7551 into master Oct 1, 2026
5 of 7 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants