Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Fix: Missing cross compile symbols #5864

Open
wants to merge 2 commits into
base: master
Choose a base branch
from
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
28 changes: 28 additions & 0 deletions cmake/cross-windows-x86_64.cmake
Original file line number Diff line number Diff line change
@@ -0,0 +1,28 @@

set(CMAKE_SYSTEM_NAME Windows)
set(CMAKE_SYSTEM_VERSION 10.0)
set(CMAKE_SYSTEM_PROCESSOR x86_64)

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)
set(CMAKE_FIND_ROOT_PATH /usr/x86_64-w64-mingw32)

# Slang specific
set(SLANG_LIB_TYPE STATIC)
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Why are we setting static library as default?

Copy link
Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The toolchain file is only intended for an easy way to reproduce same build, not intended for merging. You can ignore that file. This is Work in Progress anyways. I'm not expecting to merge as is. Open to ideas

set(SLANG_ENABLE_CUDA OFF)
set(SLANG_ENABLE_OPTIX OFF)
set(SLANG_ENABLE_NVAPI OFF)
set(SLANG_ENABLE_XLIB OFF)
set(SLANG_ENABLE_AFTERMATH OFF)
set(SLANG_ENABLE_DX_ON_VK OFF)
set(SLANG_ENABLE_SLANG_RHI OFF)
set(SLANG_ENABLE_DXIL OFF)
set(SLANG_ENABLE_GFX OFF)
set(SLANG_ENABLE_SLANGD OFF)
set(SLANG_ENABLE_SLANGRT OFF)
set(SLANG_ENABLE_TESTS OFF)
set(SLANG_ENABLE_EXAMPLES OFF)
set(SLANG_ENABLE_REPLAYER OFF)
set(SLANG_ENABLE_RELEASE_DEBUG_INFO OFF)
set(CMAKE_SKIP_INSTALL_RULES ON)
4 changes: 2 additions & 2 deletions source/core/slang-io.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -185,7 +185,7 @@ namespace Slang

bool File::exists(const String& fileName)
{
#ifdef _WIN32
#if defined(_WIN32) && !defined(__MINGW32__)
struct _stat32 statVar;
return ::_wstat32(((String)fileName).toWString(), &statVar) != -1;
#else
Expand Down Expand Up @@ -640,7 +640,7 @@ bool Path::createDirectoryRecursive(const String& path)

/* static */ SlangResult Path::getPathType(const String& path, SlangPathType* pathTypeOut)
{
#ifdef _WIN32
#if defined(_WIN32) && !defined(__MINGW32__)
// https://msdn.microsoft.com/en-us/library/14h5k7ff.aspx
struct _stat32 statVar;
if (::_wstat32(String(path).toWString(), &statVar) == 0)
Expand Down
14 changes: 13 additions & 1 deletion source/core/slang-secure-crt.h
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
#ifndef _WIN32
#ifndef SLANG_CORE_SECURE_CRT_H
#define SLANG_CORE_SECURE_CRT_H
#ifndef _WIN32
#include <assert.h>
#include <stdarg.h>
#include <stdio.h>
Expand Down Expand Up @@ -105,5 +105,17 @@ inline void strncpy_s(
{
strncpy(strDestination, strSource, count);
}
#elif defined(__MINGW32__)
#include <stdio.h>
inline size_t fread_s(
void* buffer,
[[maybe_unused]] size_t bufferSize,
size_t elementSize,
size_t count,
FILE* stream)
{
assert(bufferSize >= elementSize * count);
return fread(buffer, elementSize, count, stream);
}
#endif
#endif
Loading