Skip to content

Commit 43af317

Browse files
committed
more fixes
1 parent fe8a806 commit 43af317

File tree

2 files changed

+69
-26
lines changed

2 files changed

+69
-26
lines changed

CMakeLists.txt

Lines changed: 64 additions & 21 deletions
Original file line numberDiff line numberDiff line change
@@ -16,7 +16,10 @@ include_directories(".")
1616

1717
# default value of ${CMAKE_BUILD_TYPE} is Release
1818
if(NOT CMAKE_BUILD_TYPE)
19-
set(CMAKE_BUILD_TYPE "Release" CACHE STRING "Choose the type of build (Debug or Release)" FORCE)
19+
set(CMAKE_BUILD_TYPE "Release" CACHE STRING "Choose default type of build (Release)" FORCE)
20+
if(WIN32)
21+
set(CMAKE_CONFIGURATION_TYPES "Release" CACHE STRING "Choose the type of build (Release)" FORCE)
22+
endif()
2023
endif()
2124

2225
option(FACIL_ENABLE_OPENSSL "Build facil.io with OpenSSL" OFF)
@@ -53,13 +56,6 @@ include(CheckLibraryExists)
5356
check_library_exists(socket connect "" HAVE_SOCKET)
5457
check_library_exists(nsl gethostname "" HAVE_NSL)
5558

56-
if(HAVE_SOCKET AND HAVE_NSL)
57-
link_libraries(socket nsl)
58-
endif()
59-
if(WIN32)
60-
link_libraries(ws2_32)
61-
endif()
62-
6359
# Variable to track whether any of the checks have succeeded
6460
set(HAVE_SENDFILE FALSE)
6561

@@ -219,6 +215,11 @@ endif()
219215
set(COMMON_FLAGS "")
220216
set(RELEASE_FLAGS "")
221217
set(DEBUG_FLAGS "")
218+
# Add sanitizers flags for Debug builds
219+
set(SANITIZERS "")
220+
221+
# facil-io defines
222+
set(FLAGS "-DFIO_LEAK_COUNTER -DFIO_FIOBJ -DFIOBJ_MALLOC")
222223

223224
# Compiler-specific flags
224225
if(COMPILER_TYPE STREQUAL "MSVC")
@@ -233,8 +234,6 @@ else()
233234
set(DEBUG_FLAGS "${COMMON_FLAGS} -O0 -g -DDEBUG=1")
234235
endif()
235236

236-
# Add sanitizers flags for Debug builds
237-
set(SANITIZERS "")
238237
if(CMAKE_BUILD_TYPE STREQUAL "Debug")
239238
if(COMPILER_TYPE STREQUAL "MSVC")
240239
# Add sanitizers for MSVC (AddressSanitizer not available)
@@ -247,16 +246,32 @@ if(CMAKE_BUILD_TYPE STREQUAL "Debug")
247246
else()
248247
set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} ${RELEASE_FLAGS}")
249248
endif()
250-
set(FLAGS "-DFIO_LEAK_COUNTER -DFIO_FIOBJ -DFIOBJ_MALLOC")
249+
250+
if(HAVE_SOCKET AND HAVE_NSL)
251+
link_libraries(socket nsl)
252+
endif()
253+
251254
# Create the library target
252255
if(FACIL_SHARED_BUILD)
253256
add_library(${PROJECT_NAME} SHARED ${SOURCES})
254257
if(OpenSSL_FOUND)
255-
target_link_libraries(${PROJECT_NAME} PRIVATE Threads::Threads OpenSSL::SSL OpenSSL::Crypto)
258+
if(NOT WIN32)
259+
target_link_libraries(${PROJECT_NAME} PRIVATE Threads::Threads OpenSSL::SSL OpenSSL::Crypto m rt)
260+
else()
261+
target_link_libraries(${PROJECT_NAME} PRIVATE Threads::Threads OpenSSL::SSL OpenSSL::Crypto ws2_32)
262+
endif()
256263
elseif(Sodium_FOUND)
257-
target_link_libraries(${PROJECT_NAME} PRIVATE Threads::Threads Sodium::Sodium)
264+
if(NOT WIN32)
265+
target_link_libraries(${PROJECT_NAME} PRIVATE Threads::Threads Sodium::Sodium m rt)
266+
else()
267+
target_link_libraries(${PROJECT_NAME} PRIVATE Threads::Threads Sodium::Sodium ws2_32)
268+
endif()
258269
else()
259-
target_link_libraries(${PROJECT_NAME} PRIVATE Threads::Threads)
270+
if(NOT WIN32)
271+
target_link_libraries(${PROJECT_NAME} PRIVATE Threads::Threads m rt)
272+
else()
273+
target_link_libraries(${PROJECT_NAME} PRIVATE Threads::Threads ws2_32)
274+
endif()
260275
endif()
261276
add_library(${PROJECT_NAME}::${PROJECT_NAME} ALIAS ${PROJECT_NAME})
262277
target_link_options(${PROJECT_NAME} PRIVATE
@@ -283,14 +298,30 @@ if(FACIL_EXAMPLES_BUILD)
283298
add_executable(${EXAMPLE_NAME} examples/${EXAMPLE_NAME}.c)
284299
if(${EXAMPLE_NAME} STREQUAL server OR ${EXAMPLE_NAME} STREQUAL client)
285300
if(Sodium_FOUND)
286-
target_link_libraries(${EXAMPLE_NAME} PUBLIC ${PROJECT_NAME}-static PRIVATE Threads::Threads Sodium::Sodium)
301+
if(NOT WIN32)
302+
target_link_libraries(${EXAMPLE_NAME} PUBLIC ${PROJECT_NAME}-static PRIVATE Threads::Threads Sodium::Sodium m rt)
303+
else()
304+
target_link_libraries(${EXAMPLE_NAME} PUBLIC ${PROJECT_NAME}-static PRIVATE Threads::Threads Sodium::Sodium)
305+
endif()
287306
elseif(OpenSSL_FOUND)
288-
target_link_libraries(${EXAMPLE_NAME} PUBLIC ${PROJECT_NAME}-static PRIVATE Threads::Threads OpenSSL::SSL OpenSSL::Crypto)
307+
if(NOT WIN32)
308+
target_link_libraries(${EXAMPLE_NAME} PUBLIC ${PROJECT_NAME}-static PRIVATE Threads::Threads OpenSSL::SSL OpenSSL::Crypto m rt)
309+
else()
310+
target_link_libraries(${EXAMPLE_NAME} PUBLIC ${PROJECT_NAME}-static PRIVATE Threads::Threads OpenSSL::SSL OpenSSL::Crypto)
311+
endif()
289312
else()
290-
target_link_libraries(${EXAMPLE_NAME} PUBLIC ${PROJECT_NAME}-static PRIVATE Threads::Threads)
313+
if(NOT WIN32)
314+
target_link_libraries(${EXAMPLE_NAME} PUBLIC ${PROJECT_NAME}-static PRIVATE Threads::Threads m rt)
315+
else()
316+
target_link_libraries(${EXAMPLE_NAME} PUBLIC ${PROJECT_NAME}-static PRIVATE Threads::Threads)
317+
endif()
291318
endif()
292319
else()
293-
target_link_libraries(${EXAMPLE_NAME} PUBLIC ${PROJECT_NAME}-static PRIVATE Threads::Threads)
320+
if(NOT WIN32)
321+
target_link_libraries(${EXAMPLE_NAME} PUBLIC ${PROJECT_NAME}-static PRIVATE Threads::Threads m rt)
322+
else()
323+
target_link_libraries(${EXAMPLE_NAME} PUBLIC ${PROJECT_NAME}-static PRIVATE Threads::Threads)
324+
endif()
294325
endif()
295326
target_compile_definitions(${EXAMPLE_NAME} PRIVATE ${FLAGS})
296327
add_custom_target(run_${EXAMPLE_NAME}
@@ -328,12 +359,24 @@ if(FACIL_TESTS_BUILD)
328359
endif()
329360
if(${TEST_NAME} STREQUAL base64 OR ${TEST_NAME} STREQUAL stl-mutex)
330361
if(Sodium_FOUND)
331-
target_link_libraries(${TEST_NAME} PUBLIC ${PROJECT_NAME}-static PRIVATE Threads::Threads Sodium::Sodium)
362+
if(NOT WIN32)
363+
target_link_libraries(${TEST_NAME} PUBLIC ${PROJECT_NAME}-static PRIVATE Threads::Threads Sodium::Sodium m rt)
364+
else()
365+
target_link_libraries(${TEST_NAME} PUBLIC ${PROJECT_NAME}-static PRIVATE Threads::Threads Sodium::Sodium)
366+
endif()
332367
elseif(OpenSSL_FOUND)
333-
target_link_libraries(${TEST_NAME} PUBLIC ${PROJECT_NAME}-static PRIVATE Threads::Threads OpenSSL::SSL OpenSSL::Crypto)
368+
if(NOT WIN32)
369+
target_link_libraries(${TEST_NAME} PUBLIC ${PROJECT_NAME}-static PRIVATE Threads::Threads OpenSSL::SSL OpenSSL::Crypto m rt)
370+
else()
371+
target_link_libraries(${TEST_NAME} PUBLIC ${PROJECT_NAME}-static PRIVATE Threads::Threads OpenSSL::SSL OpenSSL::Crypto)
372+
endif()
334373
endif()
335374
else()
336-
target_link_libraries(${TEST_NAME} PUBLIC ${PROJECT_NAME}-static PRIVATE Threads::Threads)
375+
if(NOT WIN32)
376+
target_link_libraries(${TEST_NAME} PUBLIC ${PROJECT_NAME}-static PRIVATE Threads::Threads m rt)
377+
else()
378+
target_link_libraries(${TEST_NAME} PUBLIC ${PROJECT_NAME}-static PRIVATE Threads::Threads)
379+
endif()
337380
endif()
338381
target_compile_definitions(${TEST_NAME} PRIVATE ${FLAGS} "-DTESTS=1")
339382
add_custom_target(run_${TEST_NAME}

README.md

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -93,15 +93,15 @@ Add this on your cmake project
9393
```cmake
9494
include(FetchContent)
9595
96-
find_package(facil.io 0.8.0)
97-
if (NOT facil.io_FOUND)
96+
find_package(facil-io 0.8.0)
97+
if (NOT facil-io_FOUND)
9898
FetchContent_Declare(facil.io GIT_REPOSITORY https://github.com/facil-io/cstl.git
9999
GIT_TAG master)
100-
FetchContent_GetProperties(facil.io)
101-
FetchContent_MakeAvailable(facil.io)
100+
FetchContent_GetProperties(facil-io)
101+
FetchContent_MakeAvailable(facil-io)
102102
endif()
103103
104-
target_link_libraries(${PROJECT_NAME} PRIVATE facil.io::facil.io)
104+
target_link_libraries(${PROJECT_NAME} PRIVATE facil-io::facil-io)
105105
```
106106

107107
## Contribution Notice

0 commit comments

Comments
 (0)