summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--CMakeLists.txt37
-rw-r--r--auto_tests/file_saving_test.c4
-rw-r--r--other/cpufeatures.c6
3 files changed, 32 insertions, 15 deletions
diff --git a/CMakeLists.txt b/CMakeLists.txt
index d14538d1..2f46824d 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -438,9 +438,22 @@ elseif(FORMAT_TEST)
438 message(FATAL_ERROR "format_test can not be run, because ASTYLE (${ASTYLE}) could not be found") 438 message(FATAL_ERROR "format_test can not be run, because ASTYLE (${ASTYLE}) could not be found")
439endif() 439endif()
440 440
441if(ANDROID_CPU_FEATURES)
442 # We need to compile cpufeatures.c as many times as there are executables,
443 # because libvpx doesn't include it although it depends on it. We can't get
444 # the link ordering right in cmake, so we need to compile the cpufeatures
445 # library into every binary explicitly.
446 #
447 # The alternative is to #include the library in every main file, but I
448 # (@iphydf) felt that this solution was cleaner.
449 add_definitions(-DANDROID_CPU_FEATURES="${ANDROID_CPU_FEATURES}")
450 set(CPUFEATURES other/cpufeatures.c)
451endif()
452
441function(auto_test target) 453function(auto_test target)
442 if(NOT (MSVC AND ARGV1 STREQUAL "MSVC_DONT_BUILD")) 454 if(NOT (MSVC AND ARGV1 STREQUAL "MSVC_DONT_BUILD"))
443 add_executable(auto_${target}_test auto_tests/${target}_test.c) 455 add_executable(auto_${target}_test ${CPUFEATURES}
456 auto_tests/${target}_test.c)
444 target_link_modules(auto_${target}_test toxcore) 457 target_link_modules(auto_${target}_test toxcore)
445 if(NOT ARGV1 STREQUAL "DONT_RUN") 458 if(NOT ARGV1 STREQUAL "DONT_RUN")
446 add_test(NAME ${target} COMMAND ${CROSSCOMPILING_EMULATOR} auto_${target}_test) 459 add_test(NAME ${target} COMMAND ${CROSSCOMPILING_EMULATOR} auto_${target}_test)
@@ -451,15 +464,10 @@ endfunction()
451 464
452if(BUILD_TOXAV) 465if(BUILD_TOXAV)
453 add_definitions(-D__STDC_LIMIT_MACROS=1) 466 add_definitions(-D__STDC_LIMIT_MACROS=1)
454 add_executable(auto_monolith_test 467 add_executable(auto_monolith_test ${CPUFEATURES}
455 auto_tests/monolith_test.cpp 468 auto_tests/monolith_test.cpp)
456 ${ANDROID_CPU_FEATURES})
457 target_link_libraries(auto_monolith_test ${toxcore_LINK_MODULES}) 469 target_link_libraries(auto_monolith_test ${toxcore_LINK_MODULES})
458 add_test(NAME monolith COMMAND ${CROSSCOMPILING_EMULATOR} auto_monolith_test) 470 add_test(NAME monolith COMMAND ${CROSSCOMPILING_EMULATOR} auto_monolith_test)
459
460 if(ANDROID_CPU_FEATURES)
461 target_compile_definitions(auto_monolith_test PRIVATE -Dtypeof=__typeof__)
462 endif()
463endif() 471endif()
464 472
465auto_test(TCP) 473auto_test(TCP)
@@ -509,7 +517,7 @@ endif()
509 517
510option(DHT_BOOTSTRAP "Enable building of DHT_bootstrap" ON) 518option(DHT_BOOTSTRAP "Enable building of DHT_bootstrap" ON)
511if(DHT_BOOTSTRAP) 519if(DHT_BOOTSTRAP)
512 add_executable(DHT_bootstrap 520 add_executable(DHT_bootstrap ${CPUFEATURES}
513 other/DHT_bootstrap.c 521 other/DHT_bootstrap.c
514 other/bootstrap_node_packets.c) 522 other/bootstrap_node_packets.c)
515 target_link_modules(DHT_bootstrap toxcore) 523 target_link_modules(DHT_bootstrap toxcore)
@@ -522,7 +530,7 @@ if(BOOTSTRAP_DAEMON AND WIN32)
522endif() 530endif()
523if(BOOTSTRAP_DAEMON) 531if(BOOTSTRAP_DAEMON)
524 if(LIBCONFIG_FOUND) 532 if(LIBCONFIG_FOUND)
525 add_executable(tox-bootstrapd 533 add_executable(tox-bootstrapd ${CPUFEATURES}
526 other/bootstrap_daemon/src/command_line_arguments.c 534 other/bootstrap_daemon/src/command_line_arguments.c
527 other/bootstrap_daemon/src/command_line_arguments.h 535 other/bootstrap_daemon/src/command_line_arguments.h
528 other/bootstrap_daemon/src/config.c 536 other/bootstrap_daemon/src/config.c
@@ -553,7 +561,8 @@ option(BUILD_AV_TEST "Build toxav test" ON)
553if(NOT WIN32 561if(NOT WIN32
554 AND BUILD_AV_TEST AND BUILD_TOXAV 562 AND BUILD_AV_TEST AND BUILD_TOXAV
555 AND SNDFILE_FOUND AND PORTAUDIO_FOUND AND OPENCV_FOUND) 563 AND SNDFILE_FOUND AND PORTAUDIO_FOUND AND OPENCV_FOUND)
556 add_executable(av_test testing/av_test.c) 564 add_executable(av_test ${CPUFEATURES}
565 testing/av_test.c)
557 target_link_modules(av_test 566 target_link_modules(av_test
558 toxcore 567 toxcore
559 ${OPENCV_LIBRARIES} 568 ${OPENCV_LIBRARIES}
@@ -566,8 +575,10 @@ if(NOT WIN32
566 endif() 575 endif()
567endif() 576endif()
568 577
569add_executable(DHT_test testing/DHT_test.c) 578add_executable(DHT_test ${CPUFEATURES}
579 testing/DHT_test.c)
570target_link_modules(DHT_test toxcore) 580target_link_modules(DHT_test toxcore)
571 581
572add_executable(Messenger_test testing/Messenger_test.c) 582add_executable(Messenger_test ${CPUFEATURES}
583 testing/Messenger_test.c)
573target_link_modules(Messenger_test toxcore) 584target_link_modules(Messenger_test toxcore)
diff --git a/auto_tests/file_saving_test.c b/auto_tests/file_saving_test.c
index 11c81ad2..8aa14dc3 100644
--- a/auto_tests/file_saving_test.c
+++ b/auto_tests/file_saving_test.c
@@ -61,7 +61,7 @@ static void save_data_encrypted(void)
61 } 61 }
62 62
63 size_t written_value = fwrite(cipher, sizeof(*cipher), size, f); 63 size_t written_value = fwrite(cipher, sizeof(*cipher), size, f);
64 printf("written written_value = %li of %li\n", written_value, size); 64 printf("written written_value = %zu of %zu\n", written_value, size);
65 65
66 free(cipher); 66 free(cipher);
67 free(clear); 67 free(clear);
@@ -79,7 +79,7 @@ static void load_data_decrypted(void)
79 uint8_t *cipher = (uint8_t *)malloc(size); 79 uint8_t *cipher = (uint8_t *)malloc(size);
80 uint8_t *clear = (uint8_t *)malloc(size - TOX_PASS_ENCRYPTION_EXTRA_LENGTH); 80 uint8_t *clear = (uint8_t *)malloc(size - TOX_PASS_ENCRYPTION_EXTRA_LENGTH);
81 size_t read_value = fread(cipher, sizeof(*cipher), size, f); 81 size_t read_value = fread(cipher, sizeof(*cipher), size, f);
82 printf("read read_vavue = %li of %li\n", read_value, size); 82 printf("read read_vavue = %zu of %ld\n", read_value, size);
83 83
84 TOX_ERR_DECRYPTION derr; 84 TOX_ERR_DECRYPTION derr;
85 85
diff --git a/other/cpufeatures.c b/other/cpufeatures.c
new file mode 100644
index 00000000..e52a90ff
--- /dev/null
+++ b/other/cpufeatures.c
@@ -0,0 +1,6 @@
1#define typeof __typeof__
2#ifdef ANDROID_CPU_FEATURES
3#include ANDROID_CPU_FEATURES
4#endif
5
6extern int unused_declaration;