@@ -165,6 +165,18 @@ download_extract() {
165165configure_build () {
166166 local configure_args=()
167167
168+ case " ${HOST} " in
169+ native)
170+ configure_args+=(--prefix=" ${NATIVE_PREFIX} " )
171+ configure_args+=(--libdir=" ${NATIVE_PREFIX} /lib" )
172+ ;;
173+ * )
174+ configure_args+=(--host=" ${HOST} " )
175+ configure_args+=(--prefix=" ${PREFIX} " )
176+ configure_args+=(--libdir=" ${PREFIX} /lib" )
177+ ;;
178+ esac
179+
168180 if [ " ${LIBS_SHARED} " = ' ON' ]
169181 then
170182 configure_args+=(--enable-shared)
@@ -186,9 +198,6 @@ configure_build() {
186198 fi
187199
188200 ./configure \
189- --host=" ${HOST} " \
190- --prefix=" ${PREFIX} " \
191- --libdir=" ${PREFIX} /lib" \
192201 " ${configure_args[@]} "
193202
194203 make
@@ -212,6 +221,17 @@ get_compiler_arg1() {
212221cmake_build () {
213222 local cmake_args=()
214223
224+ case " ${HOST} " in
225+ native)
226+ cmake_args+=(-DCMAKE_PREFIX_PATH=" ${NATIVE_PREFIX} " )
227+ cmake_args+=(-DCMAKE_INSTALL_PREFIX=" ${NATIVE_PREFIX} " )
228+ ;;
229+ * )
230+ cmake_args+=(-DCMAKE_PREFIX_PATH=" ${PREFIX} " )
231+ cmake_args+=(-DCMAKE_INSTALL_PREFIX=" ${PREFIX} " )
232+ ;;
233+ esac
234+
215235 cmake_args+=(-DCMAKE_C_COMPILER=" $( get_compiler_name ${CC} ) " )
216236 cmake_args+=(-DCMAKE_CXX_COMPILER=" $( get_compiler_name ${CXX} ) " )
217237 cmake_args+=(-DCMAKE_C_COMPILER_ARG1=" $( get_compiler_arg1 ${CC} ) " )
@@ -229,8 +249,6 @@ cmake_build() {
229249 cmake -S . -B build \
230250 -DCMAKE_TOOLCHAIN_FILE=" ${CMAKE_TOOLCHAIN} " \
231251 -DCMAKE_BUILD_TYPE=' Release' \
232- -DCMAKE_PREFIX_PATH=" ${PREFIX} " \
233- -DCMAKE_INSTALL_PREFIX=" ${PREFIX} " \
234252 -DBUILD_SHARED_LIBS=" ${LIBS_SHARED} " \
235253 " ${cmake_args[@]} "
236254
@@ -239,26 +257,25 @@ cmake_build() {
239257}
240258
241259# Build pkg-config, needed for opusfile.
242- # As a host-mode dependency it must be provided by the system when cross-compiling.
243- build_pkgconfig () {
260+ # It is part of the cross-compilation toolchain.
261+ # As a host-mode native dependency it must be provided by the system when cross-compiling.
262+ build_native-pkgconfig () {
244263 local dir_name=" pkg-config-${PKGCONFIG_VERSION} "
245264 local archive_name=" ${dir_name} .tar.gz"
246265
247- download_extract pkgconfig " ${archive_name} " \
266+ download_extract native- pkgconfig " ${archive_name} " \
248267 " ${PKGCONFIG_BASEURL} /${archive_name} "
249268
250269 " ${download_only} " && return
251270
252271 cd " ${dir_name} "
253272
254- # Reset the environment variables, we don't cross-compile this,
255- # it is part of the cross-compilation toolchain.
256- # CXXFLAGS is unused.
257- CFLAGS=' -Wno-error=int-conversion' \
258- LDFLAGS=' ' \
259- HOST=' ' \
260- configure_build \
261- --with-internal-glib
273+ (
274+ setup_native
275+ CFLAGS=' -Wno-error=int-conversion' \
276+ configure_build \
277+ --with-internal-glib
278+ )
262279}
263280
264281# Build NASM
@@ -1362,14 +1379,17 @@ common_setup() {
13621379 BUILD_BASEDIR=" build-${PKG_BASEDIR} "
13631380 BUILD_DIR=" ${WORK_DIR} /${BUILD_BASEDIR} "
13641381 PREFIX=" ${BUILD_DIR} /prefix"
1365- PATH =" ${PREFIX} /bin: ${PATH} "
1382+ NATIVE_PREFIX =" ${BUILD_DIR} /native-prefix "
13661383
13671384 mkdir -p " ${DOWNLOAD_DIR} "
13681385 mkdir -p " ${PREFIX} /bin"
13691386 mkdir -p " ${PREFIX} /include"
13701387 mkdir -p " ${PREFIX} /lib"
1388+ mkdir -p " ${NATIVE_PREFIX} /bin"
1389+ mkdir -p " ${NATIVE_PREFIX} /include"
1390+ mkdir -p " ${NATIVE_PREFIX} /lib"
13711391
1372- export PATH
1392+ PATH= " ${NATIVE_PREFIX} /bin: ${PATH} "
13731393
13741394 GLOBAL_SETUP_ONCE=' false'
13751395 fi
@@ -1378,6 +1398,7 @@ common_setup() {
13781398 CPPFLAGS+=" -I${PREFIX} /include"
13791399 LDFLAGS+=" -L${PREFIX} /lib"
13801400
1401+ export PATH
13811402 export PKG_CONFIG PKG_CONFIG_PATH
13821403 export CC CXX LD AR RANLIB STRIP
13831404 export CFLAGS CXXFLAGS CPPFLAGS LDFLAGS
@@ -1401,6 +1422,8 @@ common_setup_arch() {
14011422 CFLAGS+=' -march=armv7-a -mfpu=neon'
14021423 CXXFLAGS+=' -march=armv7-a -mfpu=neon'
14031424 ;;
1425+ native-native-native)
1426+ ;;
14041427 * )
14051428 log ERROR ' Unsupported platform'
14061429 ;;
@@ -1459,6 +1482,10 @@ common_setup_linux() {
14591482 CXXFLAGS+=' -fPIC'
14601483}
14611484
1485+ common_setup_native () {
1486+ true
1487+ }
1488+
14621489setup_default () {
14631490 # Require the compiler names to be explicitly hardcoded, we should not inherit them
14641491 # from environment as we heavily cross-compile.
@@ -1483,7 +1510,6 @@ setup_default() {
14831510 unset BITNESS
14841511 unset MACOS_ARCH
14851512 unset CMAKE_OSX_ARCHITECTURES
1486- unset CROSS_PKG_CONFIG_PATH
14871513 unset MACOSX_DEPLOYMENT_TARGET
14881514}
14891515
@@ -1558,6 +1584,27 @@ setup_linux-arm64-default() {
15581584 common_setup linux aarch64-unknown-linux-gnu
15591585}
15601586
1587+ # Set up envirnment for native host tools
1588+ setup_native () {
1589+ setup_default
1590+ CC=' cc'
1591+ CXX=' c++'
1592+ common_setup native native
1593+ }
1594+
1595+ setup_platform () {
1596+ case " ${1} " in
1597+ ' native' )
1598+ export PLATFORM=' native-native-native'
1599+ setup_native
1600+ ;;
1601+ * )
1602+ export PLATFORM=" ${1} "
1603+ " setup_${PLATFORM} "
1604+ ;;
1605+ esac
1606+ }
1607+
15611608base_windows_amd64_mingw_packages=' zlib gmp nettle curl sdl3 glew png jpeg webp openal ogg vorbis opus opusfile naclsdk saigosdk naclruntime depcheck'
15621609all_windows_amd64_mingw_packages=" ${base_windows_amd64_mingw_packages} "
15631610
@@ -1570,7 +1617,7 @@ all_windows_amd64_msvc_packages="${base_windows_amd64_msvc_packages}"
15701617base_windows_i686_msvc_packages=" ${base_windows_amd64_msvc_packages} "
15711618all_windows_i686_msvc_packages=" ${base_windows_amd64_msvc_packages} "
15721619
1573- base_macos_amd64_default_packages=' pkgconfig nasm gmp nettle sdl3 glew png jpeg webp openal ogg vorbis opus opusfile naclsdk saigosdk naclruntime'
1620+ base_macos_amd64_default_packages=' native- pkgconfig nasm gmp nettle sdl3 glew png jpeg webp openal ogg vorbis opus opusfile naclsdk saigosdk naclruntime'
15741621all_macos_amd64_default_packages=" ${base_macos_amd64_default_packages} "
15751622
15761623base_macos_arm64_default_packages=' pkgconfig gmp nettle sdl3 glew png jpeg webp openal ogg vorbis opus opusfile naclsdk saigosdk naclruntime'
@@ -1614,7 +1661,7 @@ printHelp() {
16141661 all linux windows macos
16151662
16161663 Packages:
1617- pkgconfig nasm zlib gmp nettle curl sdl3 glew png jpeg webp openal ogg vorbis opus opusfile naclsdk saigosdk naclruntime wasisdk wasmtime
1664+ native- pkgconfig nasm zlib gmp nettle curl sdl3 glew png jpeg webp openal ogg vorbis opus opusfile naclsdk saigosdk naclruntime wasisdk wasmtime
16181665
16191666 Virtual packages:
16201667 base build packages for pre-built binaries to be downloaded when building the game
@@ -1744,6 +1791,6 @@ esac
17441791
17451792for PLATFORM in ${platform_list}
17461793do (
1747- " setup_ ${PLATFORM} "
1794+ setup_platform " ${PLATFORM} "
17481795 build " ${@ } "
17491796) done
0 commit comments