@@ -10,44 +10,57 @@ endif()
1010include (${PROJECT_SOURCE_DIR} /cmake/add-cpp-test .cmake)
1111link_libraries (ada)
1212
13- include (GoogleTest)
14-
15- add_executable (wpt_tests wpt_tests.cpp)
16- add_executable (url_components url_components.cpp)
17- add_executable (basic_tests basic_tests.cpp)
18- add_executable (from_file_tests from_file_tests.cpp)
19- add_executable (ada_c ada_c.cpp)
20- add_executable (url_search_params url_search_params.cpp)
21-
22- target_link_libraries (wpt_tests PRIVATE simdjson GTest::gtest_main)
23- target_link_libraries (url_components PRIVATE simdjson GTest::gtest_main)
24- target_link_libraries (basic_tests PRIVATE simdjson GTest::gtest_main)
25- target_link_libraries (from_file_tests PRIVATE simdjson GTest::gtest_main)
26- target_link_libraries (ada_c PRIVATE simdjson GTest::gtest_main)
27- target_link_libraries (url_search_params PRIVATE simdjson GTest::gtest_main)
28-
29- gtest_discover_tests(wpt_tests)
30- gtest_discover_tests(url_components)
31- gtest_discover_tests(basic_tests)
32- gtest_discover_tests(from_file_tests)
33- gtest_discover_tests(ada_c)
34- gtest_discover_tests(url_search_params)
35-
3613add_cpp_test(basic_fuzzer)
3714
38- if (" ${CMAKE_CXX_COMPILER_ID} " STREQUAL "GNU" )
39- if (CMAKE_CXX_COMPILER_VERSION VERSION_LESS 9)
40- target_link_libraries (wpt_tests PUBLIC stdc++fs)
41- target_link_libraries (url_components PUBLIC stdc++fs)
42- target_link_libraries (url_search_params PUBLIC stdc++fs)
43- endif ()
15+ if (MSVC AND BUILD_SHARED_LIBS )
16+ # Copy the ada dll into the directory
17+ add_custom_command ( TARGET basic_fuzzer PRE_BUILD # Adds a pre-build event
18+ COMMAND ${CMAKE_COMMAND} -E copy_if_different # which executes "cmake -E copy_if_different..."
19+ "$<TARGET_FILE:ada>" # <--this is in-file
20+ "$<TARGET_FILE_DIR:basic_fuzzer>" ) # <--this is out-file path
4421endif ()
4522
46- if (MSVC OR MINGW)
47- target_compile_definitions (wpt_tests PRIVATE _CRT_SECURE_NO_WARNINGS)
48- target_compile_definitions (url_components PRIVATE _CRT_SECURE_NO_WARNINGS)
49- target_compile_definitions (basic_fuzzer PRIVATE _CRT_SECURE_NO_WARNINGS)
50- target_compile_definitions (from_file_tests PRIVATE _CRT_SECURE_NO_WARNINGS)
51- target_compile_definitions (basic_tests PRIVATE _CRT_SECURE_NO_WARNINGS)
52- target_compile_definitions (url_search_params PRIVATE _CRT_SECURE_NO_WARNINGS)
23+ if (MSVC AND BUILD_SHARED_LIBS )
24+ message (STATUS "For some tests we use Google Test and it fails when building a DLL." )
25+ message (STATUS "Thus the tests are disabled. Sorry." )
26+ else ()
27+ include (GoogleTest)
28+ add_executable (wpt_tests wpt_tests.cpp)
29+ add_executable (url_components url_components.cpp)
30+ add_executable (basic_tests basic_tests.cpp)
31+ add_executable (from_file_tests from_file_tests.cpp)
32+ add_executable (ada_c ada_c.cpp)
33+ add_executable (url_search_params url_search_params.cpp)
34+
35+ target_link_libraries (wpt_tests PRIVATE simdjson GTest::gtest_main)
36+ target_link_libraries (url_components PRIVATE simdjson GTest::gtest_main)
37+ target_link_libraries (basic_tests PRIVATE simdjson GTest::gtest_main)
38+ target_link_libraries (from_file_tests PRIVATE simdjson GTest::gtest_main)
39+ target_link_libraries (ada_c PRIVATE simdjson GTest::gtest_main)
40+ target_link_libraries (url_search_params PRIVATE simdjson GTest::gtest_main)
41+
42+ gtest_discover_tests(wpt_tests)
43+ gtest_discover_tests(url_components)
44+ gtest_discover_tests(basic_tests)
45+ gtest_discover_tests(from_file_tests)
46+ gtest_discover_tests(ada_c)
47+ gtest_discover_tests(url_search_params)
48+
49+ if ("${CMAKE_CXX_COMPILER_ID} " STREQUAL "GNU" )
50+ if (CMAKE_CXX_COMPILER_VERSION VERSION_LESS 9)
51+ target_link_libraries (wpt_tests PUBLIC stdc++fs)
52+ target_link_libraries (url_components PUBLIC stdc++fs)
53+ target_link_libraries (url_search_params PUBLIC stdc++fs)
54+ endif ()
55+ endif ()
56+
57+ if (MSVC OR MINGW)
58+ target_compile_definitions (wpt_tests PRIVATE _CRT_SECURE_NO_WARNINGS)
59+ target_compile_definitions (url_components PRIVATE _CRT_SECURE_NO_WARNINGS)
60+ target_compile_definitions (basic_fuzzer PRIVATE _CRT_SECURE_NO_WARNINGS)
61+ target_compile_definitions (from_file_tests PRIVATE _CRT_SECURE_NO_WARNINGS)
62+ target_compile_definitions (basic_tests PRIVATE _CRT_SECURE_NO_WARNINGS)
63+ target_compile_definitions (url_search_params PRIVATE _CRT_SECURE_NO_WARNINGS)
64+ endif ()
65+
5366endif ()
0 commit comments