diff --git a/Data/CMake/toolchain_mingw_x86_32.cmake b/Data/CMake/toolchain_mingw_x86_32.cmake new file mode 100644 index 000000000..a3ad26b35 --- /dev/null +++ b/Data/CMake/toolchain_mingw_x86_32.cmake @@ -0,0 +1,30 @@ +set(CMAKE_SYSTEM_PROCESSOR i686) + +set(LLVM_MINGW "" CACHE FILEPATH "Path to LLVM_MINGW") +if (LLVM_MINGW) + set(LLVM_MINGW_BIN "${LLVM_MINGW}/bin/") +else() + set(LLVM_MINGW_BIN "") +endif() + +set(MINGW_TRIPLE "i686-w64-mingw32") + +set(CMAKE_RC_COMPILER ${LLVM_MINGW_BIN}${MINGW_TRIPLE}-windres) +set(CMAKE_C_COMPILER ${LLVM_MINGW_BIN}${MINGW_TRIPLE}-clang) +set(CMAKE_CXX_COMPILER ${LLVM_MINGW_BIN}${MINGW_TRIPLE}-clang++) +set(CMAKE_DLLTOOL ${LLVM_MINGW_BIN}${MINGW_TRIPLE}-dlltool) +set(CMAKE_AR ${LLVM_MINGW_BIN}${MINGW_TRIPLE}-ar) + +# Compile everything as static to avoid requiring the MinGW runtime libraries, force page aligned sections so that +# debug symbols work correctly, and disable loop alignment to workaround an LLVM bug +# (https://github.com/llvm/llvm-project/issues/47432) +set(CMAKE_SHARED_LINKER_FLAGS_INIT "-static -Wl,--file-alignment=4096,/mllvm:-align-loops=1") +set(CMAKE_EXE_LINKER_FLAGS_INIT "-static -Wl,--file-alignment=4096,/mllvm:-align-loops=1") +set(CMAKE_C_STANDARD_LIBRARIES "" CACHE STRING "" FORCE) +set(CMAKE_CXX_STANDARD_LIBRARIES "" CACHE STRING "" FORCE) +set(CMAKE_STANDARD_LIBRARIES "" CACHE STRING "" FORCE) +set(CMAKE_SYSTEM_NAME Windows) +set(CMAKE_SYSTEM_PROCESSOR ${MINGW_TRIPLE}) + +set(CMAKE_FIND_ROOT_PATH_MODE_PACKAGE ONLY) + diff --git a/Data/CMake/toolchain_mingw_x86_64.cmake b/Data/CMake/toolchain_mingw_x86_64.cmake new file mode 100644 index 000000000..76edb9ff5 --- /dev/null +++ b/Data/CMake/toolchain_mingw_x86_64.cmake @@ -0,0 +1,29 @@ +set(CMAKE_SYSTEM_PROCESSOR x86_64) + +set(LLVM_MINGW "" CACHE FILEPATH "Path to LLVM_MINGW") +if (LLVM_MINGW) + set(LLVM_MINGW_BIN "${LLVM_MINGW}/bin/") +else() + set(LLVM_MINGW_BIN "") +endif() + +set(MINGW_TRIPLE "x86_64-w64-mingw32") + +set(CMAKE_RC_COMPILER ${LLVM_MINGW_BIN}${MINGW_TRIPLE}-windres) +set(CMAKE_C_COMPILER ${LLVM_MINGW_BIN}${MINGW_TRIPLE}-clang) +set(CMAKE_CXX_COMPILER ${LLVM_MINGW_BIN}${MINGW_TRIPLE}-clang++) +set(CMAKE_DLLTOOL ${LLVM_MINGW_BIN}${MINGW_TRIPLE}-dlltool) +set(CMAKE_AR ${LLVM_MINGW_BIN}${MINGW_TRIPLE}-ar) + +# Compile everything as static to avoid requiring the MinGW runtime libraries, force page aligned sections so that +# debug symbols work correctly, and disable loop alignment to workaround an LLVM bug +# (https://github.com/llvm/llvm-project/issues/47432) +set(CMAKE_SHARED_LINKER_FLAGS_INIT "-static -Wl,--file-alignment=4096,/mllvm:-align-loops=1") +set(CMAKE_EXE_LINKER_FLAGS_INIT "-static -Wl,--file-alignment=4096,/mllvm:-align-loops=1") +set(CMAKE_C_STANDARD_LIBRARIES "" CACHE STRING "" FORCE) +set(CMAKE_CXX_STANDARD_LIBRARIES "" CACHE STRING "" FORCE) +set(CMAKE_STANDARD_LIBRARIES "" CACHE STRING "" FORCE) +set(CMAKE_SYSTEM_NAME Windows) +set(CMAKE_SYSTEM_PROCESSOR ${MINGW_TRIPLE}) + +set(CMAKE_FIND_ROOT_PATH_MODE_PACKAGE ONLY)