set(CMAKE_SYSTEM_NAME Windows) # Specify the cross compiler set(CMAKE_C_COMPILER x86_64-w64-mingw32-gcc) set(CMAKE_CXX_COMPILER x86_64-w64-mingw32-g++) set(CMAKE_RC_COMPILER x86_64-w64-mingw32-windres) # Where is the target environment located set(CMAKE_FIND_ROOT_PATH /usr/x86_64-w64-mingw32 /usr/local/opt/mingw-w64 /opt/homebrew/Cellar/mingw-w64/13.0.0_2/toolchain-x86_64/x86_64-w64-mingw32 ) # Adjust the default behavior of the FIND_XXX() commands: # search for headers and libraries in the target environment, # search for programs in the host environment set(CMAKE_FIND_ROOT_PATH_MODE_PROGRAM NEVER) set(CMAKE_FIND_ROOT_PATH_MODE_LIBRARY ONLY) set(CMAKE_FIND_ROOT_PATH_MODE_INCLUDE ONLY) # Statically link MinGW runtimes so the exe needs no libgcc/libstdc++/libwinpthread DLLs. # wgpu_native.dll is still dynamic (linked via import lib). set(CMAKE_EXE_LINKER_FLAGS "-static-libgcc -static-libstdc++ -Wl,-Bstatic -lwinpthread -Wl,-Bdynamic") # Define a flag to identify this specific build set(DEMO_CROSS_COMPILE_WIN32 ON)