Skip to content

Commit 95a28e8

Browse files
committed
Tidy up dependencies where possible
1 parent ace6921 commit 95a28e8

File tree

1 file changed

+17
-34
lines changed

1 file changed

+17
-34
lines changed

CMakeLists.txt

Lines changed: 17 additions & 34 deletions
Original file line numberDiff line numberDiff line change
@@ -279,14 +279,16 @@ else()
279279
endif()
280280

281281
set(CURL_STATIC_LIB ${CURL_INSTALL_DIR}/lib/libcurl.a)
282+
set(CURL_DEPS
283+
nghttp2_external
284+
${OPENSSL_DEP}
285+
zlib_external
286+
zstd_external
287+
libidn2_external
288+
)
282289

283290
# Add dependencies for curl
284-
add_dependencies(curl_external
285-
nghttp2_external
286-
${OPENSSL_DEP}
287-
zlib_external
288-
zstd_external
289-
libidn2_external)
291+
add_dependencies(curl_external ${CURL_DEPS})
290292

291293
# Now it's time for the main targets!
292294
#
@@ -338,23 +340,21 @@ set(COMMON_LINK_LIBS
338340
)
339341
set(COMMON_LINK_OPTIONS ${LIB_FUZZING_ENGINE_FLAG})
340342

343+
# Ensure that curl and its dependencies are built before the fuzzers
344+
set(FUZZ_DEPS curl_external ${CURL_DEPS} ${LIB_FUZZING_ENGINE_DEP})
345+
341346
# Helper macro to define a fuzzer target
342347
macro(add_curl_fuzzer name proto)
343348
add_executable(${name} ${COMMON_SOURCES})
344349
target_compile_options(${name} PRIVATE ${COMMON_FLAGS} -DFUZZ_PROTOCOLS_${proto})
345350
target_include_directories(${name} PRIVATE ${CURL_INCLUDE_DIRS})
346-
target_link_libraries(${name} PRIVATE ${COMMON_LINK_LIBS} ${LIB_FUZZING_ENGINE})
351+
target_link_libraries(${name} PRIVATE ${COMMON_LINK_LIBS})
347352
target_link_options(${name} PRIVATE ${COMMON_LINK_OPTIONS})
353+
add_dependencies(${name} ${FUZZ_DEPS})
348354
endmacro()
349355

350-
# Main fuzzer (all protocols)
351-
add_executable(curl_fuzzer ${COMMON_SOURCES})
352-
target_compile_options(curl_fuzzer PRIVATE ${COMMON_FLAGS} -DFUZZ_PROTOCOLS_ALL)
353-
target_include_directories(curl_fuzzer PRIVATE ${CURL_INCLUDE_DIRS})
354-
target_link_libraries(curl_fuzzer PRIVATE ${COMMON_LINK_LIBS} ${LIB_FUZZING_ENGINE})
355-
target_link_options(curl_fuzzer PRIVATE ${COMMON_LINK_OPTIONS})
356-
357-
# Protocol-specific fuzzers
356+
# Main fuzzer and protocol-specific fuzzers
357+
add_curl_fuzzer(curl_fuzzer ALL)
358358
add_curl_fuzzer(curl_fuzzer_dict DICT)
359359
add_curl_fuzzer(curl_fuzzer_file FILE)
360360
add_curl_fuzzer(curl_fuzzer_ftp FTP)
@@ -376,39 +376,22 @@ target_compile_options(curl_fuzzer_bufq PRIVATE ${COMMON_FLAGS})
376376
target_include_directories(curl_fuzzer_bufq PRIVATE ${CURL_INCLUDE_DIRS})
377377
target_link_libraries(curl_fuzzer_bufq PRIVATE ${COMMON_LINK_LIBS})
378378
target_link_options(curl_fuzzer_bufq PRIVATE ${COMMON_LINK_OPTIONS})
379+
add_dependencies(curl_fuzzer_bufq ${FUZZ_DEPS})
379380

380381
# URL fuzzer
381382
add_executable(fuzz_url fuzz_url.cc)
382383
target_compile_options(fuzz_url PRIVATE ${COMMON_FLAGS})
383384
target_include_directories(fuzz_url PRIVATE ${CURL_INCLUDE_DIRS})
384385
target_link_libraries(fuzz_url PRIVATE ${COMMON_LINK_LIBS})
385386
target_link_options(fuzz_url PRIVATE ${COMMON_LINK_OPTIONS})
387+
add_dependencies(fuzz_url ${FUZZ_DEPS})
386388

387389
# Unit test fuzzer
388390
add_executable(curl_fuzzer_fnmatch fuzz_fnmatch.cc)
389391
target_compile_options(curl_fuzzer_fnmatch PRIVATE ${COMMON_FLAGS})
390392
target_include_directories(curl_fuzzer_fnmatch PRIVATE ${CURL_INCLUDE_DIRS})
391393
target_link_libraries(curl_fuzzer_fnmatch PRIVATE ${COMMON_LINK_LIBS})
392394
target_link_options(curl_fuzzer_fnmatch PRIVATE ${COMMON_LINK_OPTIONS})
393-
394-
set(FUZZ_DEPS curl_external ${LIB_FUZZING_ENGINE_DEP} zlib_external nghttp2_external ${OPENSSL_DEP})
395-
add_dependencies(curl_fuzzer ${FUZZ_DEPS})
396-
add_dependencies(curl_fuzzer_dict ${FUZZ_DEPS})
397-
add_dependencies(curl_fuzzer_file ${FUZZ_DEPS})
398-
add_dependencies(curl_fuzzer_ftp ${FUZZ_DEPS})
399-
add_dependencies(curl_fuzzer_gopher ${FUZZ_DEPS})
400-
add_dependencies(curl_fuzzer_http ${FUZZ_DEPS})
401-
add_dependencies(curl_fuzzer_https ${FUZZ_DEPS})
402-
add_dependencies(curl_fuzzer_imap ${FUZZ_DEPS})
403-
add_dependencies(curl_fuzzer_mqtt ${FUZZ_DEPS})
404-
add_dependencies(curl_fuzzer_pop3 ${FUZZ_DEPS})
405-
add_dependencies(curl_fuzzer_rtsp ${FUZZ_DEPS})
406-
add_dependencies(curl_fuzzer_smb ${FUZZ_DEPS})
407-
add_dependencies(curl_fuzzer_smtp ${FUZZ_DEPS})
408-
add_dependencies(curl_fuzzer_tftp ${FUZZ_DEPS})
409-
add_dependencies(curl_fuzzer_ws ${FUZZ_DEPS})
410-
add_dependencies(curl_fuzzer_bufq ${FUZZ_DEPS})
411-
add_dependencies(fuzz_url ${FUZZ_DEPS})
412395
add_dependencies(curl_fuzzer_fnmatch ${FUZZ_DEPS})
413396

414397
# Create a custom target for all fuzzers

0 commit comments

Comments
 (0)