@@ -129,7 +129,7 @@ echo "Creating native launcher executable..."
129129
130130# Generate C source code
131131echo " =========== "
132- cp " $SCORE_SOURCE_DIR /tools/launcher/launcher.c " launcher.c
132+ cp " $SCORE_SOURCE_DIR /tools/launcher/launcher.cpp " launcher.cpp
133133cat > launcher-defines.h << EOF
134134#pragma once
135135
@@ -145,26 +145,38 @@ cat > launcher-defines.h << EOF
145145
146146EOF
147147
148+ if [[ -n " $APP_ENVIRONMENT " ]]; then
149+ echo " #undef SCORE_ENVIRONMENT" >> launcher-defines.h
150+ echo ' #define SCORE_ENVIRONMENT R"___(' >> launcher-defines.h
151+ cat " $APP_ENVIRONMENT " >> launcher-defines.h
152+ echo ' )___"' >> launcher-defines.h
153+ else
154+ echo ' #define SCORE_ENVIRONMENT ""' >> launcher-defines.h
155+ fi
156+
148157# Compile the launcher
149158# Try clang first, then fall back to CC (usually gcc or msvc cl)
150159COMPILER=" "
151- if command -v clang & > /dev/null; then
152- COMPILER=" clang"
153- echo " Using clang to compile launcher"
154- elif [[ -n " ${CC:- } " ]] && command -v " $CC " & > /dev/null; then
155- COMPILER=" $CC "
156- echo " Using $CC to compile launcher"
157- elif command -v gcc & > /dev/null; then
158- COMPILER=" gcc"
159- echo " Using gcc to compile launcher"
160+ if command -v ' clang++' & > /dev/null; then
161+ COMPILER=" clang++"
162+ CXXFLAGS=" -O3 -std=c++20 -Xlinker -SUBSYSTEM:WINDOWS"
163+ echo " Using clang++ to compile launcher"
164+ elif [[ -n " ${CXX:- } " ]] && command -v " $CXX " & > /dev/null; then
165+ COMPILER=" $CXX "
166+ CXXFLAGS=" -O3 -std=c++20 -mwindows"
167+ echo " Using $CXX to compile launcher"
168+ elif command -v ' g++' & > /dev/null; then
169+ COMPILER=" g++"
170+ CXXFLAGS=" -O3 -mwindows"
171+ echo " Using g++ to compile launcher"
160172else
161173 echo " Warning: No C compiler found (tried clang, \$ CC, gcc)"
162174 echo " Falling back to batch script launcher"
163175 exit 1
164176fi
165177
166- $COMPILER -O3 -o " ${APP_NAME} .exe" launcher.c -luser32
167- rm -f launcher.c launcher-defines.h
178+ $COMPILER $CXXFLAGS -o " ${APP_NAME} .exe" launcher.cpp -luser32
179+ rm -f launcher.cpp launcher-defines.h
168180
169181# Set icon and properties
170182if [[ -f " ${APP_ICON_ICO} " ]]; then
0 commit comments