Skip to content

Commit 7b58259

Browse files
committed
warn - windows IOCP
1 parent b2a8003 commit 7b58259

File tree

1 file changed

+24
-8
lines changed

1 file changed

+24
-8
lines changed

CMakeLists.txt

Lines changed: 24 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -53,6 +53,9 @@ check_struct_has_member("struct tm" tm_zone time.h HAVE_TM_TM_ZONE)
5353
include(CheckLibraryExists)
5454
check_library_exists(socket connect "" HAVE_SOCKET)
5555
check_library_exists(nsl gethostname "" HAVE_NSL)
56+
if(HAVE_SOCKET AND HAVE_NSL)
57+
link_libraries(socket nsl)
58+
endif()
5659

5760
# Variable to track whether any of the checks have succeeded
5861
set(HAVE_SENDFILE FALSE)
@@ -142,7 +145,7 @@ if(WIN32)
142145
if(HAVE_IOCP)
143146
set(FLAGS "${FLAGS} FIO_ENGINE_IOCP HAVE_IOCP")
144147
else()
145-
message(FATAL_ERROR "No supped polling engine detected. Unable to compile facil.io.")
148+
message(WARNING "No supped polling engine detected. Unable to compile facil.io.")
146149
endif()
147150
endif()
148151
else()
@@ -222,6 +225,7 @@ set(FLAGS "-DFIO_LEAK_COUNTER -DFIO_FIOBJ -DFIOBJ_MALLOC")
222225
# Compiler-specific flags
223226
if(COMPILER_TYPE STREQUAL "MSVC")
224227
# MSVC compiler flags
228+
add_definitions(-D_CRT_SECURE_NO_WARNINGS -D_CRT_NONSTDC_NO_DEPRECATE)
225229
set(COMMON_FLAGS "/W4 /EHsc")
226230
set(RELEASE_FLAGS "${COMMON_FLAGS} /O2")
227231
set(DEBUG_FLAGS "${COMMON_FLAGS} /Od /Zi")
@@ -232,6 +236,10 @@ else()
232236
set(DEBUG_FLAGS "${COMMON_FLAGS} -O0 -g -DDEBUG=1")
233237
endif()
234238

239+
if(MINGW)
240+
set(MINGW32_LIBRARY mingw32 "-mwindows" CACHE STRING "link flags for MinGW")
241+
endif()
242+
235243
if(CMAKE_BUILD_TYPE STREQUAL "Debug")
236244
if(COMPILER_TYPE STREQUAL "MSVC")
237245
# Add sanitizers for MSVC (AddressSanitizer not available)
@@ -245,30 +253,38 @@ else()
245253
set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} ${RELEASE_FLAGS}")
246254
endif()
247255

248-
if(HAVE_SOCKET AND HAVE_NSL)
249-
link_libraries(socket nsl)
250-
endif()
251-
252256
# Create the library target
253257
if(FACIL_SHARED_BUILD)
254258
add_library(${PROJECT_NAME} SHARED ${SOURCES})
255259
if(OpenSSL_FOUND)
256260
if(NOT WIN32)
257261
target_link_libraries(${PROJECT_NAME} PRIVATE Threads::Threads OpenSSL::SSL OpenSSL::Crypto PUBLIC ${MATH_LIBRARY})
258262
else()
259-
target_link_libraries(${PROJECT_NAME} PRIVATE Threads::Threads OpenSSL::SSL OpenSSL::Crypto ws2_32)
263+
if(MSVC)
264+
target_link_libraries(${PROJECT_NAME} PRIVATE Threads::Threads OpenSSL::SSL OpenSSL::Crypto ws2_32)
265+
else()
266+
target_link_libraries(${PROJECT_NAME} PRIVATE Threads::Threads ws2_32 Sodium::Sodium PUBLIC ${MINGW32_LIBRARY} ${MATH_LIBRARY})
267+
endif()
260268
endif()
261269
elseif(Sodium_FOUND)
262270
if(NOT WIN32)
263271
target_link_libraries(${PROJECT_NAME} PRIVATE Threads::Threads Sodium::Sodium PUBLIC ${MATH_LIBRARY})
264272
else()
265-
target_link_libraries(${PROJECT_NAME} PRIVATE Threads::Threads Sodium::Sodium ws2_32)
273+
if(MSVC)
274+
target_link_libraries(${PROJECT_NAME} PRIVATE Threads::Threads Sodium::Sodium ws2_32)
275+
else()
276+
target_link_libraries(${PROJECT_NAME} PRIVATE Threads::Threads ws2_32 Sodium::Sodium PUBLIC ${MINGW32_LIBRARY} ${MATH_LIBRARY})
277+
endif()
266278
endif()
267279
else()
268280
if(NOT WIN32)
269281
target_link_libraries(${PROJECT_NAME} PRIVATE Threads::Threads PUBLIC ${MATH_LIBRARY})
270282
else()
271-
target_link_libraries(${PROJECT_NAME} PRIVATE Threads::Threads ws2_32)
283+
if(MSVC)
284+
target_link_libraries(${PROJECT_NAME} PRIVATE Threads::Threads ws2_32)
285+
else()
286+
target_link_libraries(${PROJECT_NAME} PRIVATE Threads::Threads ws2_32 ${MINGW32_LIBRARY} ${MATH_LIBRARY})
287+
endif()
272288
endif()
273289
endif()
274290
add_library(${PROJECT_NAME}::${PROJECT_NAME} ALIAS ${PROJECT_NAME})

0 commit comments

Comments
 (0)