File: CMakeLists.txt

package info (click to toggle)
nodejs 22.14.0%2Bdfsg-1
  • links: PTS, VCS
  • area: main
  • in suites: experimental
  • size: 246,928 kB
  • sloc: cpp: 1,582,349; javascript: 582,017; ansic: 82,400; python: 60,561; sh: 4,009; makefile: 2,263; asm: 1,732; pascal: 1,565; perl: 248; lisp: 222; xml: 42
file content (66 lines) | stat: -rw-r--r-- 2,953 bytes parent folder | download | duplicates (5)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
add_subdirectory(wpt)

set(ADA_TEST_INCLUDE_DIR ${CMAKE_CURRENT_SOURCE_DIR}/../)
if(MSVC)
  add_compile_options("/Zi" "/EHsc" "/GR")
  add_compile_options("$<$<C_COMPILER_ID:MSVC>:/utf-8>")
  add_compile_options("$<$<CXX_COMPILER_ID:MSVC>:/utf-8>")
endif()

include(${PROJECT_SOURCE_DIR}/cmake/add-cpp-test.cmake)
link_libraries(ada)

add_cpp_test(basic_fuzzer)

if(MSVC AND BUILD_SHARED_LIBS)
  # Copy the ada dll into the directory
  add_custom_command(TARGET basic_fuzzer PRE_BUILD        # Adds a pre-build event
    COMMAND ${CMAKE_COMMAND} -E copy_if_different  # which executes "cmake -E copy_if_different..."
        "$<TARGET_FILE:ada>"      # <--this is in-file
        "$<TARGET_FILE_DIR:basic_fuzzer>")                 # <--this is out-file path
endif()

if(MSVC AND BUILD_SHARED_LIBS)
  message(STATUS "For some tests we use Google Test and it fails when building a DLL.")
  message(STATUS "Thus the tests are disabled. Sorry.")
else()
  include(GoogleTest)
  add_executable(wpt_tests wpt_tests.cpp)
  add_executable(url_components url_components.cpp)
  add_executable(basic_tests basic_tests.cpp)
  add_executable(from_file_tests from_file_tests.cpp)
  add_executable(ada_c ada_c.cpp)
  add_executable(url_search_params url_search_params.cpp)

  target_link_libraries(wpt_tests PRIVATE simdjson GTest::gtest_main)
  target_link_libraries(url_components PRIVATE simdjson GTest::gtest_main)
  target_link_libraries(basic_tests PRIVATE simdjson GTest::gtest_main)
  target_link_libraries(from_file_tests PRIVATE simdjson GTest::gtest_main)
  target_link_libraries(ada_c PRIVATE simdjson GTest::gtest_main)
  target_link_libraries(url_search_params PRIVATE simdjson GTest::gtest_main)

  gtest_discover_tests(wpt_tests PROPERTIES TEST_DISCOVERY_TIMEOUT 600)
  gtest_discover_tests(url_components PROPERTIES TEST_DISCOVERY_TIMEOUT 600)
  gtest_discover_tests(basic_tests PROPERTIES TEST_DISCOVERY_TIMEOUT 600)
  gtest_discover_tests(from_file_tests PROPERTIES TEST_DISCOVERY_TIMEOUT 600)
  gtest_discover_tests(ada_c PROPERTIES TEST_DISCOVERY_TIMEOUT 600)
  gtest_discover_tests(url_search_params PROPERTIES TEST_DISCOVERY_TIMEOUT 600)

  if("${CMAKE_CXX_COMPILER_ID}" STREQUAL "GNU")
    if (CMAKE_CXX_COMPILER_VERSION VERSION_LESS 9)
      target_link_libraries(wpt_tests PUBLIC stdc++fs)
      target_link_libraries(url_components PUBLIC stdc++fs)
      target_link_libraries(url_search_params PUBLIC stdc++fs)
    endif()
  endif()

  if(MSVC OR MINGW)
    target_compile_definitions(wpt_tests PRIVATE _CRT_SECURE_NO_WARNINGS)
    target_compile_definitions(url_components PRIVATE _CRT_SECURE_NO_WARNINGS)
    target_compile_definitions(basic_fuzzer PRIVATE _CRT_SECURE_NO_WARNINGS)
    target_compile_definitions(from_file_tests PRIVATE _CRT_SECURE_NO_WARNINGS)
    target_compile_definitions(basic_tests PRIVATE _CRT_SECURE_NO_WARNINGS)
    target_compile_definitions(url_search_params PRIVATE _CRT_SECURE_NO_WARNINGS)
  endif()

endif()