Skip to content

windows fmt utf-8 error #1011

@eclipseyin147

Description

@eclipseyin147

I try to build this project with vcpkg with this port.cmake:

# Pre-configure patches: must happen BEFORE vcpkg_cmake_configure
if(VCPKG_TARGET_IS_WINDOWS)
    # Stub quest_database.hpp on Windows to avoid POSIX headers
    set(_QUEST_HDR "${SOURCE_PATH}/src/umpire/event/quest_database.hpp")
    if(EXISTS "${_QUEST_HDR}")
        file(READ "${_QUEST_HDR}" _QUEST_ORIG)
        if(NOT _QUEST_ORIG MATCHES "#if[ \t]+defined\\(_WIN32\\)")
            set(_QUEST_NEW
"#pragma once
#if defined(_WIN32)
// Windows stub: disable POSIX quest database on Windows build
namespace umpire { namespace event { struct quest_database {}; } }
#else
${_QUEST_ORIG}
#endif // _WIN32
")
            file(WRITE "${_QUEST_HDR}" "${_QUEST_NEW}")
        endif()
    endif()
endif()

# Configure Umpire
vcpkg_cmake_configure(
        SOURCE_PATH "${SOURCE_PATH}"
        OPTIONS
            -DENABLE_TESTS=OFF
            -DENABLE_BENCHMARKS=OFF
            -DENABLE_EXAMPLES=OFF
            -DENABLE_DOCS=OFF
            -DUMPIRE_ENABLE_CUDA=ON
            -DUMPIRE_ENABLE_HIP=OFF
            -DUMPIRE_ENABLE_OPENMP=ON
            -DUMPIRE_ENABLE_FILESYSTEM=ON
            -DUMPIRE_ENABLE_C=ON
            -DUMPIRE_ENABLE_TOOLS=OFF
            -DUMPIRE_ENABLE_BACKTRACE=OFF
            -DUMPIRE_ENABLE_LOGGING=OFF
            -DUMPIRE_ENABLE_DEVICE_ALLOCATOR=ON
            -DBLT_EXPORT_THIRDPARTY:BOOL=OFF
            -DUMPIRE_ENABLE_SQLITE_EXPERIMENTAL:BOOL=OFF
            -DCAMP_ENABLE_CUDA=OFF
            -DCAMP_ENABLE_TESTS:BOOL=OFF
            -DENABLE_TESTS:BOOL=OFF
            -DENABLE_CUDA:BOOL=ON
            -DENABLE_VALGRIND:BOOL=OFF
            -DENABLE_SPHINX:BOOL=OFF
            -DUMPIRE_ENABLE_CLANGQUERY:BOOL=OFF
            -DUMPIRE_ENABLE_EXAMPLES:BOOL=OFF
            -DUMPIRE_ENABLE_GMOCK:BOOL=OFF
        "-DCMAKE_CXX_FLAGS=/utf-8"
        "-DCMAKE_C_FLAGS=/utf-8"
        "-DCMAKE_CUDA_FLAGS= -Xcompiler /utf-8 -Xcompiler /EHsc "

)

I got a compiling error:

FAILED: src/umpire/CMakeFiles/umpire_device.dir/device_allocator_helper.cpp.obj 
"F:\Program Files\NVIDIA\CUDA\bin\nvcc.exe" -forward-unknown-to-host-compiler -ccbin="F:\Program Files\Microsoft Visual Studio\2022\Enterprise\VC\Tools\MSVC\14.44.35207\bin\Hostx64\x64\cl.exe" -DCAMP_HAVE_CUDA -DFMT_HEADER_ONLY=1 -Dumpire_device_EXPORTS -IF:\vcpkg\buildtrees\umpire\src\67d72f6041-596c332106.clean\src -IF:\vcpkg\buildtrees\umpire\src\67d72f6041-596c332106.clean\src\tpl\umpire\camp\include -IF:\vcpkg\buildtrees\umpire\x64-windows-rel\src\tpl\umpire\camp\include -isystem F:\vcpkg\buildtrees\umpire\x64-windows-rel\include -isystem "F:\Program Files\NVIDIA\CUDA\include" -isystem F:\vcpkg\buildtrees\umpire\src\67d72f6041-596c332106.clean\src\tpl\umpire\fmt\include -isystem F:\vcpkg\buildtrees\umpire\src\67d72f6041-596c332106.clean\src\tpl -Xcompiler /utf-8 -Xcompiler /EHsc -Xcompiler="-MD -O2 -Ob2" -DNDEBUG -std=c++17 "--generate-code=arch=compute_52,code=[compute_52,sm_52]" -Xcompiler=/utf-8 -Xcompiler=/EHsc -MD -MT src\umpire\CMakeFiles\umpire_device.dir\device_allocator_helper.cpp.obj -MF src\umpire\CMakeFiles\umpire_device.dir\device_allocator_helper.cpp.obj.d -x cu -rdc=true -c F:\vcpkg\buildtrees\umpire\src\67d72f6041-596c332106.clean\src\umpire\device_allocator_helper.cpp -o src\umpire\CMakeFiles\umpire_device.dir\device_allocator_helper.cpp.obj -Xcompiler=-Fdsrc\umpire\CMakeFiles\umpire_device.dir\,-FS
F:\vcpkg\buildtrees\umpire\src\67d72f6041-596c332106.clean\src\tpl\umpire\fmt\include\fmt\base.h(463): error: static assertion failed with "Unicode support requires compiling with /utf-8"
  static_assert(!1 || use_utf8,

So why nvcc can not receive this utf-8 when it tries to compile this cpp file which is related to fmt ?

Metadata

Metadata

Assignees

Labels

No labels
No labels

Type

No type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions