0
0
mirror of https://github.com/yse/easy_profiler.git synced 2024-12-27 08:41:02 +08:00

Merge pull request #145 from ndesai/feature/qnx-support

Support build with QNX 7.0 toolchain
This commit is contained in:
Sergey Yagovtsev 2019-01-15 23:02:44 +03:00 committed by GitHub
commit 65b3b23b5e
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
3 changed files with 14 additions and 1 deletions

View File

@ -220,9 +220,12 @@ easy_define_target_option(easy_profiler EASY_OPTION_PREDEFINED_COLORS EASY_OPTIO
# Add platform specific compile options: # Add platform specific compile options:
if (UNIX) if (UNIX)
target_compile_options(easy_profiler PRIVATE -Wall -Wno-long-long -Wno-reorder -Wno-braced-scalar-init -pedantic) target_compile_options(easy_profiler PRIVATE -Wall -Wno-long-long -Wno-reorder -Wno-braced-scalar-init -pedantic)
if (NOT ANDROID) if (NOT ANDROID AND NOT QNX)
target_link_libraries(easy_profiler pthread) target_link_libraries(easy_profiler pthread)
endif() endif()
if (QNX)
target_link_libraries(easy_profiler socket)
endif()
elseif (WIN32) elseif (WIN32)
target_compile_definitions(easy_profiler PRIVATE -D_WIN32_WINNT=0x0600 -D_CRT_SECURE_NO_WARNINGS -D_WINSOCK_DEPRECATED_NO_WARNINGS) target_compile_definitions(easy_profiler PRIVATE -D_WIN32_WINNT=0x0600 -D_CRT_SECURE_NO_WARNINGS -D_WINSOCK_DEPRECATED_NO_WARNINGS)
target_link_libraries(easy_profiler ws2_32 psapi) target_link_libraries(easy_profiler ws2_32 psapi)

View File

@ -50,6 +50,10 @@ The Apache License, Version 2.0 (the "License");
#elif defined(__APPLE__) #elif defined(__APPLE__)
# include <pthread.h> # include <pthread.h>
# include <Availability.h> # include <Availability.h>
#elif defined(__QNX__)
# include <sys/mman.h>
# include <process.h>
# define __NR_gettid SYS_gettid
#else #else
# include <sys/types.h> # include <sys/types.h>
# include <unistd.h> # include <unistd.h>
@ -70,6 +74,9 @@ inline profiler::thread_id_t getCurrentThreadId()
# else # else
return (profiler::thread_id_t)pthread_self(); return (profiler::thread_id_t)pthread_self();
# endif # endif
#elif defined(__QNX__)
EASY_THREAD_LOCAL static const profiler::thread_id_t _id = (profiler::thread_id_t)gettid();
return _id;
#else #else
EASY_THREAD_LOCAL static const profiler::thread_id_t _id = (profiler::thread_id_t)syscall(__NR_gettid); EASY_THREAD_LOCAL static const profiler::thread_id_t _id = (profiler::thread_id_t)syscall(__NR_gettid);
return _id; return _id;

View File

@ -43,6 +43,9 @@ limitations under the License.
#include <string.h> #include <string.h>
#include <thread> #include <thread>
#include <limits> #include <limits>
#if defined(__QNX__)
# include <sys/time.h>
#endif
#if defined(_WIN32) #if defined(_WIN32)
# pragma comment (lib, "Ws2_32.lib") # pragma comment (lib, "Ws2_32.lib")