Fix Windows build (#1097)

This commit is contained in:
Kawrakow
2025-12-29 14:18:27 +01:00
committed by GitHub
parent f878adbe90
commit 17a5a80946
3 changed files with 15 additions and 6 deletions

View File

@@ -8,7 +8,9 @@ set(CMAKE_WARN_UNUSED_CLI YES)
set(CMAKE_EXPORT_COMPILE_COMMANDS ON) set(CMAKE_EXPORT_COMPILE_COMMANDS ON)
set(CMAKE_CXX_STANDARD 20) set(CMAKE_CXX_STANDARD 20)
set(CMAKE_CXX_STANDARD_REQUIRED true) set(CMAKE_CXX_STANDARD_REQUIRED true)
if(MSVC)
add_compile_options(/permissive- /Zc:__cplusplus)
endif()
set(CMAKE_CUDA_USE_RESPONSE_FILE_FOR_INCLUDES 0) set(CMAKE_CUDA_USE_RESPONSE_FILE_FOR_INCLUDES 0)
set(CMAKE_CUDA_USE_RESPONSE_FILE_FOR_LIBRARIES 0) set(CMAKE_CUDA_USE_RESPONSE_FILE_FOR_LIBRARIES 0)
set(CMAKE_CUDA_USE_RESPONSE_FILE_FOR_OBJECTS 0) set(CMAKE_CUDA_USE_RESPONSE_FILE_FOR_OBJECTS 0)

View File

@@ -96,5 +96,11 @@ endif()
if (WIN32) if (WIN32)
TARGET_LINK_LIBRARIES(${TARGET} PRIVATE ws2_32) TARGET_LINK_LIBRARIES(${TARGET} PRIVATE ws2_32)
endif() endif()
if(MSVC)
set_target_properties(${TARGET} PROPERTIES
CXX_STANDARD 17
CXX_STANDARD_REQUIRED ON
)
endif()
target_compile_features(${TARGET} PRIVATE cxx_std_17) target_compile_features(${TARGET} PRIVATE cxx_std_17)

View File

@@ -2162,10 +2162,11 @@ static enum ggml_status ggml_backend_sched_compute_splits(ggml_backend_sched_t s
bool work_done = false; bool work_done = false;
#ifdef GGML_USE_OPENMP #ifdef GGML_USE_OPENMP
if (int nlevels = omp_get_max_active_levels(); nlevels < 2) { //This maty not be available in old OpenMP versions
omp_set_max_active_levels(nlevels+1); //if (int nlevels = omp_get_max_active_levels(); nlevels < 2) {
//printf("%s: Setting omp max active levels to 2\n", __func__); // omp_set_max_active_levels(nlevels+1);
} // //printf("%s: Setting omp max active levels to 2\n", __func__);
//}
bool has_cpu_work = false; bool has_cpu_work = false;
for (int i = 0; i < sched->n_backends; ++i) { for (int i = 0; i < sched->n_backends; ++i) {
if (!sched->backend_splits[i].empty()) { if (!sched->backend_splits[i].empty()) {
@@ -2237,7 +2238,7 @@ static enum ggml_status ggml_backend_sched_compute_splits(ggml_backend_sched_t s
} }
#endif #endif
if (!work_done) { if (!work_done) {
std::barrier barrier(sched->n_backends, [] () {}); std::barrier barrier(sched->n_backends, [] () noexcept {});
auto compute = [sched, &barrier] (int ith) { auto compute = [sched, &barrier] (int ith) {
struct ggml_backend_sched_split * splits = sched->splits; struct ggml_backend_sched_split * splits = sched->splits;