mirror of
https://github.com/jkdansereau/goldeneye-pc-port.git
synced 2026-10-23 15:52:42 +02:00
linux-build: resolve host <stddef.h> via -print-file-name
<stddef.h> is compiler-internal (lib/gcc/<triple>/<ver>/include), not in bin/../include on a native Linux GCC, so the MinGW-layout guess produced /usr/include/stddef.h which does not exist -> fatal error in every fast3d C++ TU. Ask the compiler with -print-file-name=include/stddef.h and fall back to the old path. MinGW resolves to its own lib/gcc internal copy; Windows build verified green (240/241).
This commit is contained in:
1 parent
7c3bb42687
commit
8eb2efa6ca
1 file changed
+11
-1
+11
-1
@@ -164,7 +164,17 @@ configure_file(
|
||||
|
||||
# Host <stddef.h> path for port/shim/stddef.h (same reason as stdlib: the N64
|
||||
# stub shadows the host header in C++ TUs, hiding max_align_t from cstddef).
|
||||
get_filename_component(PORT_HOST_STDDDEF_H "${_PORT_GCC_DIR}/../include/stddef.h" ABSOLUTE)
|
||||
# stddef.h is compiler-internal, not in bin/../include: on a native Linux GCC
|
||||
# it lives under lib/gcc/<triple>/<ver>/include. Ask the compiler where it is;
|
||||
# fall back to the MinGW bin/../include layout.
|
||||
execute_process(
|
||||
COMMAND "${CMAKE_C_COMPILER}" -print-file-name=include/stddef.h
|
||||
OUTPUT_VARIABLE _PORT_GCC_STDDEF OUTPUT_STRIP_TRAILING_WHITESPACE ERROR_QUIET)
|
||||
if(_PORT_GCC_STDDEF AND EXISTS "${_PORT_GCC_STDDEF}")
|
||||
get_filename_component(PORT_HOST_STDDDEF_H "${_PORT_GCC_STDDEF}" ABSOLUTE)
|
||||
else()
|
||||
get_filename_component(PORT_HOST_STDDDEF_H "${_PORT_GCC_DIR}/../include/stddef.h" ABSOLUTE)
|
||||
endif()
|
||||
configure_file(
|
||||
"${CMAKE_SOURCE_DIR}/port/include/hoststddef.h.in"
|
||||
"${CMAKE_BINARY_DIR}/port/include/hoststddef.h" @ONLY)
|
||||
|
||||
Reference in new issue
Block a user