Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- # toolchain-clang-cl-xwin.cmake
- cmake_minimum_required(VERSION 3.20)
- set(CMAKE_SYSTEM_NAME Windows)
- set(CMAKE_SYSTEM_PROCESSOR x86_64)
- set(CMAKE_LINKER lld-link)
- # Path to your extracted xwin sysroot
- set(XWIN_ROOT "/home/user/.xwin")
- # Use clang-cl, but force Windows target triple
- set(CMAKE_C_COMPILER clang-cl)
- set(CMAKE_CXX_COMPILER clang-cl)
- # Target triple
- set(TARGET_TRIPLE x86_64-pc-windows-msvc)
- # Base flags (note: space-separated, not semicolon!)
- set(COMMON_INCLUDE_FLAGS
- "/imsvc${XWIN_ROOT}/crt/include "
- "/imsvc${XWIN_ROOT}/sdk/include/ucrt "
- "/imsvc${XWIN_ROOT}/sdk/include/um "
- "/imsvc${XWIN_ROOT}/sdk/include/shared "
- "/imsvc${XWIN_ROOT}/sdk/include/winrt"
- )
- string(REPLACE ";" " " COMMON_INCLUDE_FLAGS "${COMMON_INCLUDE_FLAGS}")
- set(CMAKE_C_FLAGS_INIT "--target=${TARGET_TRIPLE} -fuse-ld=lld ${COMMON_INCLUDE_FLAGS} /D_HAS_EXCEPTIONS=0")
- set(CMAKE_CXX_FLAGS_INIT "--target=${TARGET_TRIPLE} -fuse-ld=lld ${COMMON_INCLUDE_FLAGS} /D_HAS_EXCEPTIONS=0")
- set(CMAKE_C_FLAGS_DEBUG "/MD /Zi /Od" CACHE STRING "" FORCE)
- set(CMAKE_CXX_FLAGS_DEBUG "/MD /Zi /Od" CACHE STRING "" FORCE)
- # Don’t let CMake inject /MDd (msvcrtd)
- set(CMAKE_MSVC_RUNTIME_LIBRARY "MultiThreadedDLL")
- # Linker flags (for MSVC-style linker)
- set(CMAKE_EXE_LINKER_FLAGS_INIT
- "/libpath:${XWIN_ROOT}/crt/lib/x86_64 \
- /libpath:${XWIN_ROOT}/sdk/lib/ucrt/x86_64 \
- /libpath:${XWIN_ROOT}/sdk/lib/um/x86_64"
- )
- # Avoid picking host libs
- set(CMAKE_FIND_ROOT_PATH ${XWIN_ROOT})
- set(CMAKE_FIND_ROOT_PATH_MODE_PROGRAM NEVER)
- set(CMAKE_FIND_ROOT_PATH_MODE_LIBRARY ONLY)
- set(CMAKE_FIND_ROOT_PATH_MODE_INCLUDE ONLY)
- set(CMAKE_FIND_ROOT_PATH_MODE_PACKAGE ONLY)
Advertisement
Add Comment
Please, Sign In to add comment