Skip to content

Commit 43b2b6c

Browse files
committed
Fix Windows build issues with GCC PATH and CMake configuration
- Update configure-atari800.sh to ensure MinGW-w64 tools are in PATH - Fix create-minimal-makefile.sh to use correct PATH for Windows builds - Update CMakeLists.txt verification commands to use broader PATH - Ensure both /mingw64/bin and /usr/bin are accessible in MSYS2 environment These changes address the "gcc not found" and CMake configuration errors encountered in GitHub Actions Windows builds.
1 parent df9924d commit 43b2b6c

File tree

3 files changed

+17
-5
lines changed

3 files changed

+17
-5
lines changed

CMakeLists.txt

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -76,12 +76,12 @@ if(WIN32)
7676
# Use msys2 shell environment with proper PATH for MinGW gcc
7777
if(MSYS2_BASH MATCHES "msys2\.(cmd|CMD)$")
7878
# GitHub Actions setup-msys2 wrapper
79-
set(ATARI800_CONFIGURE_COMMAND ${CMAKE_COMMAND} -E env MSYSTEM=MSYS ${MSYS2_BASH} -c "export PATH='/mingw64/bin:$PATH' && cd '<SOURCE_DIR>' && '${CMAKE_CURRENT_SOURCE_DIR}/scripts/configure-atari800.sh' '<SOURCE_DIR>'")
80-
set(ATARI800_BUILD_COMMAND ${CMAKE_COMMAND} -E env MSYSTEM=MSYS ${MSYS2_BASH} -c "export PATH='/mingw64/bin:$PATH' && cd '<SOURCE_DIR>' && make -j4")
79+
set(ATARI800_CONFIGURE_COMMAND ${CMAKE_COMMAND} -E env MSYSTEM=MSYS ${MSYS2_BASH} -c "export PATH='/mingw64/bin:/usr/bin:$PATH' && cd '<SOURCE_DIR>' && '${CMAKE_CURRENT_SOURCE_DIR}/scripts/configure-atari800.sh' '<SOURCE_DIR>'")
80+
set(ATARI800_BUILD_COMMAND ${CMAKE_COMMAND} -E env MSYSTEM=MSYS ${MSYS2_BASH} -c "export PATH='/mingw64/bin:/usr/bin:$PATH' && cd '<SOURCE_DIR>' && make -j4")
8181
else()
8282
# Traditional bash.exe
83-
set(ATARI800_CONFIGURE_COMMAND ${CMAKE_COMMAND} -E env MSYSTEM=MSYS ${MSYS2_BASH} --login -c "export PATH='/mingw64/bin:$PATH' && cd '<SOURCE_DIR>' && '${CMAKE_CURRENT_SOURCE_DIR}/scripts/configure-atari800.sh' '<SOURCE_DIR>'")
84-
set(ATARI800_BUILD_COMMAND ${CMAKE_COMMAND} -E env MSYSTEM=MSYS ${MSYS2_BASH} --login -c "export PATH='/mingw64/bin:$PATH' && cd '<SOURCE_DIR>' && make -j4")
83+
set(ATARI800_CONFIGURE_COMMAND ${CMAKE_COMMAND} -E env MSYSTEM=MSYS ${MSYS2_BASH} --login -c "export PATH='/mingw64/bin:/usr/bin:$PATH' && cd '<SOURCE_DIR>' && '${CMAKE_CURRENT_SOURCE_DIR}/scripts/configure-atari800.sh' '<SOURCE_DIR>'")
84+
set(ATARI800_BUILD_COMMAND ${CMAKE_COMMAND} -E env MSYSTEM=MSYS ${MSYS2_BASH} --login -c "export PATH='/mingw64/bin:/usr/bin:$PATH' && cd '<SOURCE_DIR>' && make -j4")
8585
endif()
8686
else()
8787
# Unix/macOS: Use native tools
@@ -132,7 +132,7 @@ if(WIN32)
132132
COMMAND ${CMAKE_COMMAND} -E echo "=== Verifying libatari800 build on Windows ==="
133133
COMMAND ${CMAKE_COMMAND} -E echo "Expected library: ${ATARI800_LIBRARY}"
134134
COMMAND ${CMAKE_COMMAND} -E echo "Checking if library exists..."
135-
COMMAND ${CMAKE_COMMAND} -E env MSYSTEM=MSYS ${MSYS2_BASH} -c "export PATH='/mingw64/bin:$PATH' && if [ -f '${ATARI800_LIBRARY}' ]; then echo 'SUCCESS: libatari800.a exists'; ls -la '${ATARI800_LIBRARY}'; else echo 'ERROR: libatari800.a missing'; ls -la '${ATARI800_SOURCE_DIR}/src/'; fi"
135+
COMMAND ${CMAKE_COMMAND} -E env MSYSTEM=MSYS ${MSYS2_BASH} -c "export PATH='/mingw64/bin:/usr/bin:$PATH' && if [ -f '${ATARI800_LIBRARY}' ]; then echo 'SUCCESS: libatari800.a exists'; ls -la '${ATARI800_LIBRARY}'; else echo 'ERROR: libatari800.a missing'; ls -la '${ATARI800_SOURCE_DIR}/src/'; fi"
136136
COMMENT "Verifying libatari800 library creation"
137137
)
138138
endif()

scripts/configure-atari800.sh

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -117,6 +117,12 @@ elif [[ "$OSTYPE" == "msys" ]] || [[ "$MSYSTEM" != "" ]]; then
117117
which automake || echo "automake not found"
118118
which autoreconf || echo "autoreconf not found"
119119

120+
# Ensure MinGW-w64 tools are in PATH
121+
export PATH="/mingw64/bin:/usr/bin:$PATH"
122+
echo "Updated PATH for MinGW-w64: $PATH"
123+
which gcc || echo "gcc not found"
124+
which g++ || echo "g++ not found"
125+
120126
# Ensure we're using MinGW-w64 compiler
121127
export CC=gcc
122128
export CXX=g++

scripts/create-minimal-makefile.sh

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -12,6 +12,12 @@ fi
1212

1313
cd "$ATARI800_SRC_PATH"
1414

15+
# Ensure MinGW-w64 tools are in PATH for Windows builds
16+
if [[ "$OSTYPE" == "msys" ]] || [[ "$MSYSTEM" != "" ]]; then
17+
export PATH="/mingw64/bin:/usr/bin:$PATH"
18+
echo "Updated PATH for MinGW-w64: $PATH"
19+
fi
20+
1521
echo "Creating minimal Makefile for libatari800..."
1622

1723
# Create a basic Makefile that compiles the essential files for libatari800

0 commit comments

Comments
 (0)